我的數據是關聯數據庫的,剛入坑用的自帶的分詞,所有的中文都會被分成單個。很不好用
而更換IK分詞器后,發現不生效,百度后是 沒有建立? 索引(mapping)。所以想要進行更換,結果在創建的時候,報沖突錯誤。
本來想整個報錯圖給你們看下,找不到了。直接解決錯誤吧
在數據已有的情況下,再次導入是一個不合適的方法,而我們想要更新mapping就會有沖突,解決思路就是,新建一個索引庫,然后數據同步過去,再刪除原有的。本以為會很難,結果很簡單
1:建立新的索引
PUT myindex? ? ? ??
2:新建索引結構??
?POST myindex/_mapping
{
? "properties": {
? ? "content":{
? ? ? "type": "text",
? ? ? "analyzer": "ik_max_word",
? ? ? ? ? ? ? ? "search_analyzer": "ik_smart",
? ? ? ? ? ? ? ? "index_options": "docs"
? ? },
? ? "title":{
? ? ? "type": "text",
? ? ? "analyzer": "ik_max_word",
? ? ? ? ? ? ? ? "search_analyzer": "ik_smart",
? ? ? ? ? ? ? ? "index_options": "docs"
? ? }
? }
}
3:數據替換?
POST _reindex
{
? "source": {
? ? "index":"index"
? },
? "dest": {
? ? "index": "myindex"
? }
}
4. 查看數據是否已同步到新的索引上
GET /myindex/_search
至此數據索引替換完成。在替換索引之前的入庫粒度還是按照原有的單個中文,但是查詢時會按照IK分詞器的,所以可以正常使用