1. 程式人生 > 實用技巧 >Java中使用ES引擎

Java中使用ES引擎

一:在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檔案中配置了查詢語句

MapRestResponse response = null;
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。