雖然es在配置上要比solr簡單許多,也更加靈活,基本上沒有什麼多餘的配置,官網下載下傳好後就可以直接使用,附一個下載下傳位址https://www.elastic.co/downloads/past-releases
注意:ES版本差異賊大,是以盡量保證版本一緻
在測試中,所有的示範我均通過HTTP來請求,測試工具我采用postman
首先将官方下載下傳的ES解壓一下我們可以看到如下目錄(linux下大同小異),
然後我們通過指令行進入bin目錄下執行elasticsearch指令,ES就完美運作了,位址欄中輸入127.0.0.1:9200就可以看到如下界面,說明運作成功。
看到這裡是不是感覺很簡單呢,,,下面我們來進行安裝bug練習,,,不對,是安裝ik分詞器。
首先先說一下為什麼要分詞,我們随便找一段英語看一下他的分詞效果,可以看到分詞效果相對來說還是不錯的
但是呢我們換成中文試一下,同樣的查詢條件,同樣的HTTP請求,漢字卻被拆分成一個一個的文字了
很明顯,這并不是我們想要的效果,是以我們需要安裝一個支援中文的分詞器,這裡我們可以使用ik進行分詞,附IK位址https://github.com/medcl/elasticsearch-analysis-ik
版本号與ES一緻,版本号與ES一緻,版本号與ES一緻
重要的事情說三次,隻要差一個小版本ik就不能用了,首先,我們解壓下載下傳好的壓縮檔案,然後在ik的根目錄下(包含pom.xml)執行mvn install 指令(下載下傳依賴),不過需要提前安裝maven,maven安裝并不難大家可以在網上搜尋一下,然後将生成的\target\releases\elasticsearch-analysis-ik-6.2.3.zip解壓到ES的plugins\ik目錄下,直接啟動ES,不需要加配置檔案,之前的ES中需要加配置檔案,但這個版本并不需要。
我們嘗試運作一下,我将請求體換成了:
{
"analyzer": "ik_max_word",
"text":"看到這裡是不是感覺很簡單呢"
}
展示效果:
{
"tokens": [
{
"token": "看到",
"start_offset": ,
"end_offset": ,
"type": "CN_WORD",
"position":
},
{
"token": "這裡是",
"start_offset": ,
"end_offset": ,
"type": "CN_WORD",
"position":
},
{
"token": "這裡",
"start_offset": ,
"end_offset": ,
"type": "CN_WORD",
"position":
},
{
"token": "是不是",
"start_offset": ,
"end_offset": ,
"type": "CN_WORD",
"position":
},
{
"token": "不是",
"start_offset": ,
"end_offset": ,
"type": "CN_WORD",
"position":
},
{
"token": "感覺",
"start_offset": ,
"end_offset": ,
"type": "CN_WORD",
"position":
},
{
"token": "很簡單",
"start_offset": ,
"end_offset": ,
"type": "CN_WORD",
"position":
},
{
"token": "簡單",
"start_offset": ,
"end_offset": ,
"type": "CN_WORD",
"position":
},
{
"token": "呢",
"start_offset": ,
"end_offset": ,
"type": "CN_CHAR",
"position":
}
]
}
ik有兩種模式,上面的方式為最大方式,它會勁量詳細的拆分,我們看到,“很簡單”算一個詞組,簡單也算一個詞組,而另一種方式為ik_smart方式
請求體:
{
"analyzer": "ik_smart",
"text":"看到這裡是不是感覺很簡單呢"
}
結果 :可以看到他隻要分詞過的字元就不會參與到下一次分詞中了
{
"tokens": [
{
"token": "看到",
"start_offset": ,
"end_offset": ,
"type": "CN_WORD",
"position":
},
{
"token": "這裡",
"start_offset": ,
"end_offset": ,
"type": "CN_WORD",
"position":
},
{
"token": "是不是",
"start_offset": ,
"end_offset": ,
"type": "CN_WORD",
"position":
},
{
"token": "感覺",
"start_offset": ,
"end_offset": ,
"type": "CN_WORD",
"position":
},
{
"token": "很簡單",
"start_offset": ,
"end_offset": ,
"type": "CN_WORD",
"position":
},
{
"token": "呢",
"start_offset": ,
"end_offset": ,
"type": "CN_CHAR",
"position":
}
]
}
好了這就是關于elasticsearch安裝以及IK的流程,由于篇幅太長,後續我會發表,增删改查java用戶端,head等部落格