日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ElasticSearch8.1.2 ik分词器

發布時間:2023/12/10 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ElasticSearch8.1.2 ik分词器 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ElasticSearch 內置了分詞器,如標準分詞器、簡單分詞器、空白詞器等。但這些分詞器對我們最常使用的中文并不友好,不能按我們的語言習慣進行分詞。

測試ElasticSearch 內置分詞器:

post localhost:9200/_analyze

參數:

{"text":"測試分詞器"}

IK分詞器

ik分詞器是一個標準的中文分詞器。可以根據定義的字典對域進行分詞,并且支持用戶配置自己的字典,所以它除了可以按通用的習慣分詞外,還可以定制化分詞。
ik分詞器是一個插件包,可以用插件的方式將它接入到ES。

一、安裝
1.1 下載

點擊這里,進入GitHub下載IK分詞器
注:下載的包一定要和 ElasticSearch 的版本一致。點擊右側的 Releases ,選擇版本

下載第一個,不要下載源碼包

1.2 安裝

以windows為例,在ES目錄的plugins目錄下創建ik子目錄,然后下載的zip包解壓的內容移到里面,最后重啟ES,界面可以看到加載的ik插件

重啟過程若出現閃退情況,請檢查:

1、版本號是否匹配

2、包是否下載錯

3、下載的zip包是否忘記刪除,也在項目里

ik分詞器有2種模式
  • ik_smart 最粗粒度的拆分,比如會將“測試分詞器”拆分為測試、分詞器。
  • ik_max_word 最細粒度的拆分,比如會將“測試分詞器”拆分為“測試、分詞器、分詞、器等詞語。
    ( ik_max_word 比 ik_smart 劃分的詞條更多,這就是它們為什么叫做最細粒度和最粗粒度。)

測試(ik_max_word)

post http://localhost:9200/_analyze

參數

{"text":"測試分詞器","analyzer":"ik_max_word"}


總結:

  • 針對文檔添加索引庫時,最好使用ik_max_work分詞,能夠獲得當前文檔最多的詞條
  • 針對搜索條件如果要分詞的話,最好使用ik_smart分詞,能夠更貼近用戶的需求.

自定義字典

舉例:如果想讓分詞器把 “測試分詞器試試” 分為 ‘測試分詞器、測試、分詞器、試試’
打開 …\elasticsearch-8.1.2\plugins\ik\config\IKAnalyzer.cfg.xml

可以看到有2個配置 ext_dict 和 ext_stopwords。分別是擴展和停用字典

參照默認的dic文件,在config目錄新建 my_ext_dict.dic 和 my_stop_dict.dic

  • my_ext_dict.dic文件里 加入想要的分詞
  • my_stop_dict.dic文件里 加入舍棄的分詞


然后配置到 IKAnalyzer.cfg.xml

重啟ES,啟動日志可以看到加載了我們的字典

效果:

:配置重啟后,若發現沒有效果,檢查下my_ext_dict.dic和 my_stop_dict.dic文件的編碼格式是否UTF-8


映射

常用映射類型
1、text

1)analyzer
通過analyzer屬性指定分詞器。

下邊指定name的字段類型為text,使用ik分詞器的ik_max_word分詞模式。

"name": { "type": "text","analyzer":"ik_max_word" }

analyzer是指在索引和搜索都使用ik_max_word,如果想單獨定義搜索時使用的分詞器則可以通search_analyzer屬性。
ik分詞器建議是索引時使用ik_max_word將搜索內容進行細粒度分詞,搜索時使用ik_smart提高搜索精確性:

"name": { "type": "text","analyzer":"ik_max_word", "search_analyzer":"ik_smart" }, "pic": {"type": "text","index": false }

2)index
通過index屬性指定是否索引。

默認為index=true,即要進行索引,只有進行索引才可以從索引庫搜索到;
若不需要搜索的則需要指定index=false。

2、keyword關鍵字字段
keyword字段為關鍵字字段,通常搜索keyword是按照整體搜索,所以創建keyword字段的索引時是不進行分詞的,是需要全部匹配

總結

以上是生活随笔為你收集整理的ElasticSearch8.1.2 ik分词器的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。