gpt4 book ai didi

elasticsearch - 如何在elasticsearch中搜索单个值

转载 作者:行者123 更新时间:2023-12-03 01:18:41 31 4
gpt4 key购买 nike

我在 Elasticsearch 中有 2 个文档:

{"_id": "1", "a": "123"}
{"_id": "2", "a": ["123", "456"]}

然后我这样查询:
{
"query": {
"bool": {
"must": [{
"term": {
"a": "123"
}
}]
}
}
}

这是我得到的:
{"_id": "1", "a": "123"}
{"_id": "2", "a": ["123", "456"]}

知道 Elasticsearch native 支持多值字段,因此它们都存在。
但我只想要第一个条目,其 id 为“1”:
{"_id": "1", "a": "123"}

我怎样才能实现它?

最佳答案

使用脚本

您可以使用脚本返回数组大小为 1 的文档。如果不存在具有单个值的文档,则它“不会”返回具有多个值的文档。无法获得下一个最小尺寸匹配文档。这必须在客户端处理

{
"query": {
"bool": {
"must": [
{
"term": {
"a": "123"
}
},
{
"script": {
"script": "if(doc['a.keyword'].size()==1) return true;"
}
}
]
}
}
}

关于elasticsearch - 如何在elasticsearch中搜索单个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61378686/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com