【发布时间】:2020-04-16 18:37:35
【问题描述】:
假设有一个索引,其文档结构如下:
{
"array": [
{
"field1": 1,
"field2": 2
},
{
"field1": 3,
"field2": 2
},
{
"field1": 3,
"field2": 2
},
...
]
}
是否可以定义一个查询来返回一个字段具有多个唯一值的文档?
对于上面的示例,在 field2 上搜索的查询不会返回文档,因为它们都具有相同的值,但在 field1 会返回它,因为它的值是 1 和 3。
我唯一能想到的是将唯一值存储在父对象中,然后查询它的长度,但是,因为它看起来微不足道,我希望在不必将结构更改为类似的情况下解决它:
{
"arrayField1Values" : [1, 3],
"arrayField2Values" : [2]
"array": [
{
"field1": 1,
"field2": 2
},
{
"field1": 3,
"field2": 2
},
{
"field1": 3,
"field2": 2
},
...
]
}
感谢任何可以提供帮助的人!
【问题讨论】:
-
如果某个字段的值在文档中仅出现一次,您希望返回该字段。因此,如果一个字段存在于多个文档中,则不返回它,或者如果它存在于所有文档中,则不返回?
标签: elasticsearch elasticsearch-query