gpt4 book ai didi

java - 如何使用java api以列表作为参数在elasticsearch上进行搜索

转载 作者:太空宇宙 更新时间:2023-11-04 15:17:03 25 4
gpt4 key购买 nike

我正在尝试从java api在elasticsearch集群中运行查询;我有一个字符串值列表,我想获取包含其中任何一个字符串值的所有文档。我该怎么做?我尝试了以下方法,但没有成功。

List<String> tagList = new ArrayList<String>();
tagList.add("grails");
tagList.add("elasticSearch");
tagList.add("java");
SearchResponse response = client.prepareSearch("mongoindex")
.setSearchType(SearchType.QUERY_AND_FETCH)
.setQuery(fieldQuery("tags", tagList))
.setFrom(0).setSize(60).setExplain(true)
.execute()
.actionGet();

最佳答案

虽然已经晚了,但也许对其他人有帮助。您可以使用 bool queryshould 子句构建 terms 查询

BoolQueryBuilder boolQuery = QueryBuilders.boolQuery()
.should(QueryBuilders.termsQuery("tags", tagList));

之后照常继续,假设存在一个保存这些值的字段tags

SearchResponse response = client.prepareSearch("mongoindex")
.setSearchType(SearchType.QUERY_AND_FETCH)
.setQuery(boolQuery)
.setFrom(0).setSize(60).setExplain(true)
.execute()
.actionGet();

关于java - 如何使用java api以列表作为参数在elasticsearch上进行搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20795505/

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