我正在尝试从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();

最佳答案

试试这个:

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(QueryBuilders.termsQuery("tags", tagList))
.setFrom(0).setSize(60).setExplain(true)
.execute()
.actionGet();

检查this link以查看有关术语查询的更多详细信息。

10-07 13:38