Я должен искать данные, основанные на нескольких условиях, используя эластичный Java API. Кто-нибудь может мне помочь? - PullRequest
0 голосов
/ 14 июня 2019
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
                sourceBuilder.query(QueryBuilders.boolQuery().must(QueryBuilders.matchQuery("ent_id", "1")));

if(null != searchParam) {
sourceBuilder.query(QueryBuilders.multiMatchQuery(searchParam,"title", "version","product","report_type"));
}
if(null !=request.getStatus() && request.getStatus().equalsIgnoreCase("Action completed")) {
    sourceBuilder.query(QueryBuilders.boolQuery().must(QueryBuilders.matchQuery("flag","Completed")));
}
if(null !=request.getStatus() && request.getStatus().equalsIgnoreCase("Action required")) {
    sourceBuilder.query(QueryBuilders.boolQuery().must(QueryBuilders.matchQuery("flag","Pending")));
}
if(null !=request.getStatus() && request.getStatus().equalsIgnoreCase("Disabled")) {
    sourceBuilder.query(QueryBuilders.boolQuery().must(QueryBuilders.matchQuery("status","Disabled")));
}
sourceBuilder.from(0);
sourceBuilder.size(40);
SearchRequest searchRequest = new SearchRequest("novartis");
searchRequest.types("safetyHome");
searchRequest.source(sourceBuilder);
SearchResponse searchResponse = null;
try {
    searchResponse = restHighLevelClient.search(searchRequest, RequestOptions.DEFAULT);
} catch (IOException e) {
    e.printStackTrace();
}
System.out.println(searchResponse);
System.out.println("TOTAL HITS ARE" + searchResponse.getHits().totalHits);
SearchHit[] results = searchResponse.getHits().getHits();
for (SearchHit hit : results) {
    sourceAsMap = hit.getSourceAsMap();
    responseFromElasticSearch.add(sourceAsMap);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...