ElasticSearch5.5.0 通過IK分詞 建立IK對映
一、IK分詞安裝:
(1)下載對應版本的IK分詞安裝包,下載地址:https://github.com/medcl/elasticsearch-analysis-ik/releases,我的ES版本為5.5.0,所以下載IK:
(2)在ES叢集的plugins目錄下新建ik資料夾:
(3)將IK的ZIP上傳到新建的ik資料夾下,用unzip ***.zip 解壓這個zip檔案,並且將這個zip包上傳到ES叢集中的其他節點上,在ES叢集中的其他節點上執行相同的操作。解壓後有以下一些檔案:
(4)重啟ES叢集即可:
檢視ES叢集日誌,看到IK已經被載入了。
二、建立IK對映
IK分詞器被載入後,在建立索引時,需要指定IK對映才能使用IK進行全文檢索,
比如:
private static XContentBuilder createIKMapping() {
XContentBuilder mapping = null;
try {
mapping = XContentFactory.jsonBuilder()
.startObject()
.startObject("properties")
.startObject("INSURANCENO").field("type", "text")
.field("analyzer","ik_max_word").endObject()
.field("analyzer","ik_max_word").endObject()
.endObject()
.endObject();
} catch (IOException e) {
e.printStackTrace();
}
return mapping;
}
然後呼叫IK Mapping就行:
public static void createBangMapping(){
PutMappingRequest mapping = Requests.putMappingRequest(INDEX).type(TYPE).source(IKTest.createIKMapping());
client.admin().indices().putMapping(mapping).actionGet();
}
這裡有一個疑問:在欄位是不知道的前提下怎麼去建立IK對映呢?