Java中使用ES引擎
阿新 • • 發佈:2020-08-13
一:在springboot中引入ES,需要安裝配置(後面再補)
二:使用說明
場景:使用者端輸入資訊,使用ES引擎獲取相關資料。
(1)儲存使用者輸入的查詢資訊,params
Map<String,Object> params = new HashMap<>();
params.put("location",location);
params.put("searchParam",inputStr);
(2)向ES傳入使用者輸入的引數params
ClientInterface clientUtil = bossESStarter.getConfigRestClient("mapper/es/questionAns.xml"); //xml檔案中配置了查詢語句
response = clientUtil.search("questionans/_search","getSelected",params);//第一個引數是索引和使用查詢,第二個引數是呼叫的查詢方法。
(3)對返回結果進行處理,得到resultList連結串列。
MapSearchHits searchHits =response.getSearchHits();
//命中的數量
Integer total = (Integer) searchHits.getTotal();
//獲取的資料如下
List<MapSearchHit> hitlist = searchHits.getHits();
List<Object> resultList = new ArrayList<>();
//需要獲取哪些資料
hitlist.forEach(
value->
{
resultList.add(value.getSource());
}
);
最後,附上xml檔案。這裡值得解釋的是,ES的語法。
bool 過濾
bool 過濾可以用來合併多個過濾條件查詢結果的布林邏輯,它包含一下操作符:
- must :: 多個查詢條件的完全匹配,相當於 and。
- must_not :: 多個查詢條件的相反匹配,相當於 not。
- should :: 至少有一個查詢條件匹配, 相當於 or。