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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

solr配置同义词,停止词,和扩展词库(IK分词器为例)

發布時間:2025/3/20 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 solr配置同义词,停止词,和扩展词库(IK分词器为例) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

定義

同義詞:搜索結果里出現的同義詞。如我們輸入”還行”,得到的結果包括同義詞”還可以”。

停止詞:在搜索時不用出現在結果里的詞。比如is 、a 、are 、”的”,“得”,“我” 等,這些詞會在句子中多次出現卻無意義,所以在分詞的時候需要把這些詞過濾掉。

擴展詞:在搜索結果里額外出現的詞。擴展詞只能是你輸入詞的本身或子串。比如我們 輸入”重慶開縣人”,正常分詞得到的結果是“重慶” “開縣”“人”;當我們在擴展詞里加入“重慶開縣”時,分詞的結果是“重慶開縣”“重慶” “開縣”“人”。

配置同義詞

1.在solr_home的conf目錄下的schema.xml 中配置同義詞text_syn:

<!-- 配置IK分詞器的同義詞 --><fieldType name="text_syn" class="solr.TextField"><analyzer type="query"><tokenizer class="solr.WhitespaceTokenizerFactory"/><filter class="solr.LowerCaseFilterFactory"/></analyzer><analyzer type="index"><tokenizer class="solr.WhitespaceTokenizerFactory"/><filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="false" /><filter class="solr.LowerCaseFilterFactory"/></analyzer> </fieldType>

2.假定在solr_home的conf目錄下的schema.xml 中要對shortName字段進行同義詞配置,則我們需要將type屬性設為上向配置的”text_syn”

<field name="shortName" type="text_syn" indexed="true" stored="true" />

3.在conf目錄下的 synonyms.txt 中增加同義詞,如:


這里我多說兩句:上面紅框里的 => 右側的詞是左側詞的同義詞,多個時用空格隔開。還有就是,最好不要直接打開synonyms.txt這個文件,因為加入的漢字在保存后會查不出來,因為txt不是UTF-8的格式保存的。

4.測試同義詞

輸入高興:

輸入中華:

5.基于上面的問題,說下怎么解決,畢竟不論我們輸入中華還是中國,都能有對應的同義詞結果。

首先,我們將synonyms.txt里的同義詞用英文逗號隔開,然后將上面配置IK同義詞里的expand屬性設為true。

我們輸入:大大的,結果如下:

配置停止詞和擴展詞庫。

1.將IKAnalyzer解壓文件夾下的stopword.dic和IKAnalyzer.cfg.xml復制到tomcat/webapps/solr/WEB-INF/classes下,再新建一個ext.dic,里面的格式和stopword.dic一致。

2.修改IKAnalyzer.cfg.xml如下面的格式可以配置多個停止詞或者擴展詞庫文件。

<properties> <comment>IK Analyzer 擴展配置</comment><!--用戶可以在這里配置自己的擴展字典--><entry key="ext_dict">ext.dic;</entry><!--用戶可以在這里配置自己的擴展停止詞字典--><entry key="ext_stopwords">english_stopword.dic;stopword.dic</entry> <properties>

輸入“重慶開縣”時,正常分詞是只有”重慶” “開縣”的
在ext.dic里添加了”重慶開縣”后,測試結果:

輸入“重慶開縣”時,正常分詞是只有”重慶” “開縣”的
在stopword.dic里添加了“開縣”之后,測試結果:

注意

字段如果要能被分詞,或是停止詞,或是擴展詞,需要在schema.xml里配置該字段時,給該字段的type屬性配成分詞類型,我們這里是text_ik,例:

<field name="companyName" type="text_ik" indexed="false" stored="true" multiValued="false" />

總結

以上是生活随笔為你收集整理的solr配置同义词,停止词,和扩展词库(IK分词器为例)的全部內容,希望文章能夠幫你解決所遇到的問題。

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