![](/img/trans.png)
[英]How to hit Secure Elastic Search through Java High Level Rest Client
[英]How to search using multiple fields in Elastic Search through Java high level rest client
我是彈性搜索的新手。 成功實現搜索文檔 API 匹配單個字段,如下所示:
SearchRequest searchRequest = new SearchRequest(indexName);
//Single field match, only for documentId
QueryBuilder matchQueryBuilder = QueryBuilders.matchQuery("documentId", documentId);
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
sourceBuilder.query(matchQueryBuilder);
searchRequest.source(sourceBuilder);
SearchResponse searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);
我想使用單個 API 中的多個字段過濾數據,例如,需要根據以下條件在 API 上方添加更多過濾器:
documentNumber > 66 && (documentCreatedDate >= date1 && documentCreatedDate <= date2) && documentName like "%test%"
誰能幫助如何在單個 SearchRequest 中應用所有這些過濾器?
您可以使用文檔中指定的rangeQuery :
QueryBuilders.rangeQuery("documentNumber")
.gte(66);
QueryBuilders.rangeQuery("documentCreatedDate")
.gte(date1)
.lt(date2);
對於模式,您可以使用 wildcardQuery:
wildcardQuery(
"documentName",
patternString);
從文檔:
查找指定字段包含與指定模式匹配的術語的文檔,其中模式支持單字符通配符 (?) 和多字符通配符 (*)
要在單個查詢中應用多個過濾器,請參閱此答案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.