1. 程式人生 > >ElasticSearch5.5.0 通過IK分詞 建立IK對映

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對映呢?