在上一節【編譯Ansj之Solr插件】中介紹如何編譯ansj分詞在solr(lucene)環境中使用的接口,本章將介紹如何在solr中使用ansj,其步驟主要包括:下載或者編譯ansj和nlp-lang等jar包、在schema中配置相關類型、將ansj和nlp-lang等jar包配置到solr中、測試ansj分詞效果。
一、下載或者編譯ansj-seg和nlp-lang等jar包。
1、您可以到http://maven.ansj.org/org/ansj/ansj_seg/ | http://maven.ansj.org/org/nlpcn/中下載相關jar包。
ansj-seg相關jar包,如下圖所示:


nlp-lang 是ansj-seg分詞中關于自然語言處理相關工具類,功能比較強大:


2、下載相關源碼,自己編譯。
這種是相對復雜的,但是如果長久使用,這種是很有必要的。對于這種優秀的分詞,我們更有必要好好研究一番。
github地址:https://github.com/NLPchina/ansj_seg
git客戶端地址:http://git-scm.com/download/
git下載源碼命令:git clone https://github.com/NLPchina/ansj_seg.git
下載后的文件結構如下:

可見代碼是用maven組中管理的。對于maven的安裝配置本文舊粗略帶過,主要包括:
下載maven相關包,解壓:

配置環境變量M2_HOME:C:/apache-maven-3.2.1
配置PATHb環境變量:%M2_HOME%/bin;
mvn常有命令:mvn clean install#清理本地緩存、下載依賴jar包 可以添加-DskipTests=true忽略單元測試;mvn eclipse:clean #清理mvn生成的eclipse工程;mvn eclipse:eclipse #根據pom.xml生成eclipse工程。
步驟:
在源碼根路徑下執行: mvn clean install -DskipTests=true 命令,在target目錄下生成jar包。

target目錄:

同義的道理,可以編譯nlp-lang jar包,地址:https://github.com/NLPchina/nlp-lang
二、在solr schema.xml中配置好ansj字段類型。
1、創建ansj類型。
找到schema.xml,添加ansj類型text_ansj:
<!--ansj start --><fieldType name="text_ansj" class="solr.TextField" positionIncrementGap="100"> <analyzer type="index"> <tokenizer class="org.ansj.solr.AnsjTokenizerFactory" isQuery="false"/> </analyzer> <analyzer type="query"> <tokenizer class="org.ansj.solr.AnsjTokenizerFactory"/> </analyzer></fieldType><!--ansj end -->
org.ansj.solr.AnsjTokenizerFactory 是我們編譯的ansj-lucene插件。
2、配置需要索引的字段。
<!-- ansj_test field --> <field name="POI_OID" type="string" indexed="false" stored="true"/> <field name="POI_NAME" type="text_ansj" indexed="true" stored="false"/> <field name="POI_NAME_SUGGEST" type="string" indexed="false" stored="true"/> <field name="POI_ADDRESS" type="text_ansj" indexed="true" stored="false"/> <field name="POI_ADDRESS_SUGGEST" type="string" indexed="false" stored="true"/> <field name="POI_PHONE" type="string" indexed="true" stored="true"/> <field name="POI_TYPE" type="string" indexed="true" stored="true" multiValued="true"/> <field name="POI_URL" type="string" indexed="false" stored="true"/> <field name="POI_DIANPING" type="string" indexed="true" stored="true" /> <field name="POI_BRAND" type="string" indexed="true" stored="true"/> <field name="POI_CITY" type="string" indexed="true" stored="true" multiValued="true"/> <field name="POI_TAG" type="text_ansj" indexed="true" stored="true"/> <field name="POI_LAT" type="double" indexed="false" stored="true"/> <field name="POI_LON" type="double" indexed="false" stored="true"/> <field name="POI_DATA_TYPE" type="string" indexed="true" stored="false"/>
三、在solr環境中配置好ansj。
在編譯好的ansj-seg、nlp-lang、ansj_lucene4_plug 放到solr war包的lib下。


配置ansj相關詞庫和配置文件,這些配置文件在ansj源碼目錄下:

把這三個配置文件放到solr程序WEB-INF/classes目錄下,classes目錄不存在則手動創建。

四、測試ansj分詞效果。
ansj配置好了以后,把solr所在的tomcat啟動一下。用solr管理頁面查看效果:
1、測試分詞 "南京市長江大橋”

備注:在文本框中輸入“南京市長江大橋” 點擊右邊藍色的按鈕“”
文章轉載,請注明出處:http://m.survivalescaperooms.com/likehua/p/4481219.html
新聞熱點
疑難解答