![](/img/trans.png)
[英]ElasticSearch Multi Term Query With Java High-Level REST Client
[英]ElasticSearch Java High Level REST Client: filter documents and or query
我需要检索按“品牌”属性过滤的文档,并检索那些对另一个属性具有特定值的文档。 例子:
所有处于活动状态的“apple”文档(“brand”属性)(“active”属性为 true),id 为“abc”、“def”或“ghi”值。
我正在使用 Java 高级 REST 客户端。
那是我的代码:
SearchRequest searchRequest = new SearchRequest(index);
searchRequest.types(type);
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
/* add query filters */
MatchQueryBuilder matchQueryBuilder = new MatchQueryBuilder("brand", brand);
searchSourceBuilder.query(matchQueryBuilder);
/* base sort is added */
//TODO: load sort from mapping based on baseSort of customSort
searchSourceBuilder.sort(sortBy , SortOrder.DESC);
/* add product id */
BoolQueryBuilder boolQuery = QueryBuilders.boolQuery()
.filter(QueryBuilders.termQuery("active", true));
searchSourceBuilder.query(boolQuery);
searchRequest.source(searchSourceBuilder);
谢谢!!
SearchRequest searchRequest = new SearchRequest(INDEX);
QueryBuilder qb = QueryBuilders.queryStringQuery(searchText + "*").defaultField("companyName")
.defaultOperator(Operator.AND);
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
sourceBuilder.query(QueryBuilders.boolQuery()
.must(QueryBuilders.termQuery("categories.id", category)
.should(QueryBuilders.termQuery("product_id", productIdsList)
);
sourceBuilder.sort(new ScoreSortBuilder().order(SortOrder.DESC));
searchRequest.source(sourceBuilder);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.