我正在升级从Elasticsearch 0.9开始到5.5的应用程序,并且需要找到重新实现预期行为的方法。Elasticsearch - 返回父母给定属性或完全没有父级的记录
没有与这样的映射索引:在Rails的
{
'parent' => {
'properties' => {
'boolean_attribute' => {
'type' => 'bool
}
}
},
'actual_doc_name' => {
'_parent' => {
'type' => 'parent'
},
'properties' => {
'title' => {
'type' => 'string'
}
}
}
}
原来的应用程序行为,这些映射到两个模型(父母和ActualDocName,让我们说)。当父项被删除时,ActualDocName仍然是一个有效的对象。当父母在场时,我经常想要找到ActualDocName,其中ActualDocName的Parent具有'boolean_attribute'=>'false'。所以我成立了一个has_parent
查询:
{
'query' => {
'bool' => {
'must' => [
{ 'has_parent' => {
'type' => 'parent',
'filter' => {
'term' => { 'boolean_attribute' => 'F' }
}
}
}
]
}
}
这很好。它返回具有Parent的ActualDocName记录,其中'boolean_attribute'为false。
但我需要在同一个结果集中包含ActualDocName记录根本没有父项。因此,我想要排除的唯一ActualDocName记录是那些既有父项又有父项的boolean_attribute为假的父项。
这可能吗?