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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

ElasticSearch配置扩展分词

發布時間:2025/3/15 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ElasticSearch配置扩展分词 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

IK支持自定義擴展詞典和停用詞典,所謂擴展詞典就是有些詞并不是關鍵詞,但是也希望被ES用來作為檢索的關鍵詞,可以將這些詞加入擴展詞典。停用詞典就是有些詞是關鍵詞,但是出于業務場景不想使用這些關鍵詞被檢索到,可以將這些詞放入停用詞典。如何定義擴展詞典和停用詞典可以修改IK分詞器中config目錄中IKAnalyzer.cfg.xml這個文件。

NOTE:詞典的編碼必須為UTF-8,否則無法生效

一、步驟

  • 修改vim IKAnalyzer.cfg.xml
  • <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> <properties><comment>IK Analyzer 擴展配置</comment><!--用戶可以在這里配置自己的擴展字典 --><entry key="ext_dict">ext_dict.dic</entry><!--用戶可以在這里配置自己的擴展停止詞字典--><entry key="ext_stopwords">ext_stopword.dic</entry> </properties>
  • 在ik分詞器目錄下config目錄中創建ext_dict.dic文件 編碼一定要為UTF-8才能生效
  • vim ext_dict.dic 加入擴展詞即可
  • 在ik分詞器目錄下config目錄中創建ext_stopword.dic文件
  • vim ext_stopword.dic 加入停用詞即可
  • 重啟es生效
  • 二、效果

    POST _analyze {"analyzer": "ik_smart","text": "巧碧螺" }


    如果有多個詞典,使用英文分號隔開:

    <entry key="ext_dict">my.dic;custom/single_word_low_freq.dic</entry>


    然而,該方式有一種致命的缺陷,就是無法實時更新熱詞,修改完文件,必須重啟elasticsearch才能生效,要想實時生效,需使用遠程配置方式

    三、遠程配置熱詞庫

  • 啟動nginx服務
    這里我們使用nginx服務(有web服務功能就可以提供遠程熱詞庫的功能了),來配置遠程熱詞庫。
    關于nginx的部署可以參考我的這篇文章
  • nginx默認訪問html文件夾下的文件,在html下創建文件夾es_ik,創建fenci.txt


    訪問http://ip:port/es_ik/fenci.txt
    正常顯示則搭建成功

  • 配置elasticsearch配置文件
  • <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> <properties><comment>IK Analyzer 擴展配置</comment><!--用戶可以在這里配置自己的擴展字典 --><entry key="ext_dict">ext_dict.dic</entry><!--用戶可以在這里配置自己的擴展停止詞字典--><entry key="ext_stopwords"></entry><!--用戶可以在這里配置遠程擴展字典 --><entry key="remote_ext_dict">http://172.18.0.4:80/es_ik/fenci.txt</entry> <!--用戶可以在這里配置遠程擴展停止詞字典--><entry key="remote_ext_stopwords">words_location</entry> </properties>

    注意這里的ip,因為我的nginx使用docker啟動的,所以不可以簡單設置localhost

    可以看到:docker給nginx分配的ip是172.18.0.4

    配置前分詞情況

    配置后

    再試一個"胡噶撒旦撒"

    只需修改fence.txt就可以了,無需重啟動elasticsearch

    推薦使用遠程刷新模式

    總結

    以上是生活随笔為你收集整理的ElasticSearch配置扩展分词的全部內容,希望文章能夠幫你解決所遇到的問題。

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