gpt4 book ai didi

java - elasticsearch中的数组搜索

转载 作者:行者123 更新时间:2023-11-30 07:07:59 24 4
gpt4 key购买 nike

我有3个文档,

{
"category":[{"id":"1"},{"id":"2"},{"id":"3"}]
}

{
"category":[{"id":"1"},{"id":"4"}]
}
{
"category":[]
}

如何像mysql一样找到在(2,3)中有category.id的文档,还有我需要在 java api querybuilder 中使用哪种类型的 DSL 查询

最佳答案

您可以使用带有should子句的 boolean 查询来查找包含所请求的ID的所有文档。这是查询 DSL 的样子

{
"query": {
"bool": {
"should": [
{"term": {
"category.id": {
"value": "2"
}
}},
{"term": {
"category.id": {
"value": "3"
}
}
}
]
}
}
}

以下是如何使用 Java API

QueryBuilders.boolQuery().should(QueryBuilders.matchQuery("category.id", "2"))
.should(QueryBuilders.matchQuery("category.id", "1"));

如果不分析id字段,也可以使用terms查询。更多信息请点击 https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-terms-query.html

关于java - elasticsearch中的数组搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39753430/

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