lga*_*ior 4 elasticsearch elasticsearch-query
我有这样的结构:
{ "id": "object1", "fields": [{"id": 100, "value": "one"}, {"id": 101, "value": "abc"}]}
{ "id": "object2", "fields": [{"id": 100, "value": "two"}, {"id": 101, "value": "cde"}]}
{ "id": "object3", "fields": [{"id": 100, "value": "three"}]}
Run Code Online (Sandbox Code Playgroud)
其中字段是嵌套数据类型。
通过嵌套查询,我可以获取具有给定字段的特定值的所有对象(例如: field.id = 101 && field.value = "abc" 我可以获取 object1)。
如何查询字段数组不包含id 给定字段的对象?
我正在寻找的基本上是一个接受谓词的存在查询(然后我可以否定它)。
由于您正在处理嵌套文档,并且您希望如果两个嵌套文档都不匹配条件,则该文档应被视为匹配。如果我重新表述一下,我可以说不要获取具有与条件匹配的嵌套文档的文档。将其转换为查询 dsl,
GET <index>/_search
{
"query": {
"bool": {
"must_not": [
{
"nested": {
"path": "fields",
"query": {
"term": {
"fields.id": 101
}
}
}
}
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1521 次 |
最近记录: |