java環境是elasticsearch安裝必須的
其實es的安裝非常簡單了
head插件讓我們能更簡單管理elasticsearch
去rtf項目中擷取對應插件,建議别去自己找plugin下,medcl大已經為我們準備好了一切
近義詞元件已經是elasticsearch自帶的了,是以不需要額外安裝插件,但是想要讓近義詞和ik一起使用,就需要配置自己的分析器了。
首先建立近義詞文檔
在config目錄下
這裡可以看到近義詞的寫法有兩種:
第一種在分詞的時候,a,b都會解析成為c,然後把c存入索引中
第二種在分詞的時候,有a的地方,都會解析成a,b,c,把a,b,c存入索引中
第一種方法相比之下有個主詞,比較省索引。
配置elasticsearch.yml中的自定義索引,和前面的ik結合,可以這麼設定:
上面的配置檔案建立了一個filter: my_synonym_filter, 然後建立了兩個自定義analyzer: ik_syno和ik_syno_smart
按照上面的配置,我們使用一個具體的句子進行測試:
120.55.72.158:9700/elasticsearchtest2
{
"index" : {
"analysis" : {
"analyzer" : {
"ik_syno" : {
"tokenizer" : "ik",
"filter" : ["my_synonym_filter"]
}
傳回json結構:
這裡就可以看到我們之前配置的東西都成功了:
are字被過濾,是由于are字是stop_words
i pad這個詞語被轉化為了ipod是由于近義詞字典中我們設定了 i pad=>ipod
“文字”兩個中文字是被分成一個中文詞切割,是因為ik的預設main.dic裡面有文字兩個字
“中文”“漢字”“漢語”三個詞出現是由于近義詞字典中我們設定了這三個為同等級的近義詞