我正在使用java QueryBuilder在elasticQuery中搜索值。以下是我的代码段。 弹性搜索中的示例2 json存储 { “ dataLayer”:“ sourcefeed” } { “ dataLayer”:“沙盒” }
BoolQueryBuilder qb = QueryBuilders.boolQuery();
qb.must(QueryBuilders.matchQuery("dataLayer",inputValue);
输入值可以是sourcefeed或sandbox或两者皆有,取决于我的输入值,它应该返回输出。对于单个值,它可以正常工作,但是如果我将输入指定为InputValue =“ sourceFeed,sandbox”,则不是工作。尝试了termsQuery,但无法正确获取。请帮助我解决问题。
感谢Prakash
答案 0 :(得分:0)
SearchSourceBuilder query = new SearchSourceBuilder();
BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();
List<QueryBuilder> queryBuilders1 = new ArrayList<QueryBuilder>();
TermsQueryBuilder termsQuery = QueryBuilders.termsQuery("dataLayer.keyword", listOfValues);
queryBuilders1.add(termsQuery);
boolQueryBuilder.must(queryBuilders1.get(0));
query.query(boolQueryBuilder);
在一个列表中添加sourceFeed和sandbox等,并将其传递到QueryBuilders.termsQuery中。 试试这个。希望这会起作用。