1、BoolQueryBuilder中must與should區別
must的兩個條件都必須滿足,should中的兩個條件至少滿足一個就可以;must相當於and,should相當於or
2、QueryBuilders中matchQuery與termQuery、termsQuery區別
match query搜索的時候,首先會解析查詢字符串,進行分詞,然后查詢,而term query,輸入的查詢內容是什么,就會按照什么去查詢,並不會解析查詢內容,對它分詞。
terms query對多個值進行查詢,相當於in;
3、用9200 RestHighLevelClient連接查詢API
String[] ips = str.split(",");
List<HttpHost> httpHosts = new ArrayList<>();
for (String ip : ips) {
httpHosts.add(new HttpHost(ip, 9200, "http"));
}
RestHighLevelClient client = new RestHighLevelClient
(RestClient.builder((HttpHost[]) httpHosts.toArray(new HttpHost[httpHosts.size()])))
SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT)