gpt4 book ai didi

elasticsearch - Elasticsearch :在查询中包含多个字段

转载 作者:行者123 更新时间:2023-12-03 02:07:33 28 4
gpt4 key购买 nike

我是Elastic Search的新手,我想在搜索查询中包含多个字段,例如:

      Title=my title and city=mycity or country = mycountry

如何使用Java客户端执行这种查询?我试过了
SearchResponse response = client.prepareSearch("titan")
.setTypes("vertex")
.setSearchType(SearchType.QUERY_AND_FETCH)
.setQuery(QueryBuilders.fieldQuery("title", "mytitle"))
.setQuery(QueryBuilders.fieldQuery("city", "mycity"))
.setFrom(0).setSize(60).setExplain(true)
.execute()
.actionGet();

但是没用

最佳答案

我相信,您必须在那做booleanQuery

就像是:

SearchResponse response = client.prepareSearch("titan")
.setTypes("vertex")
.setSearchType(SearchType.QUERY_AND_FETCH)
.setQuery(QueryBuilders.boolQuery()
.must(QueryBuilders.fieldQuery("title", "mytitle"))
.should(QueryBuilders.fieldQuery("city", "mycity"))
.should(QueryBuilders.fieldQuery("country", "mycountry")))
.setFrom(0).setSize(60).setExplain(true)
.execute()
.actionGet();

简而言之, bool(boolean) 查询的规则是,所有 must子句都应为true,并且 should子句中至少应为true(必须更改的true子句的数量可以更改,一个是默认设置)。

关于elasticsearch - Elasticsearch :在查询中包含多个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23710028/

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