每天進步一點點 時間會讓你成為巨人
阿新 • • 發佈:2019-02-12
1.下載mmseg4j
mmseg4j-core:核心庫檔案;
mmseg4j-solr:solr支援庫檔案;
mmseg4j-analysis:分析庫檔案;
下載地址:http://mvnrepository.com/search?q=mmseg4j
參考地址:https://github.com/chenlb/mmseg4j-solr
參考地址:https://code.google.com/p/mmseg4j/downloads/list
目前mmseg4j官網不提供新版本下載,在maven庫選擇下載;
solr4.0以上版本請下載mmseg4j1.9.0以上版本;
選擇mmseg4j1.9.1下載;
2.拷貝(mmseg4j-core-1.9.1.jar、mmseg4j-solr-1.9.1.jar、mmseg4j-analysis-1.9.1.jar)到tomcat下的webapps/solr/WEB-INF/lib;
3.在solr的home目錄新建dic字典目錄;
4.配置solr中文分詞器
開啟solr的home目錄的collection1/conf/schema.xml檔案;
複製
<!-- 複雜分詞器 -->
<fieldtype name="textComplex" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="../dic"/><!--此處為分詞器詞典所處位置-->
</analyzer>
</fieldtype>
<!-- 最大單詞分詞器 -->
<fieldtype name="textMaxWord" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="max-word" />
</analyzer>
</fieldtype>
<!-- 最小單詞分詞器 -->
<fieldtype name="textSimple" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="simple" dicPath="../dic" /><!--此處為分詞器詞典所處位置-->
</analyzer>
</fieldtype>
新增到<types></types>裡面;
5.修改中文分詞器欄位
把<fields></fields>裡的
<field name="title" type="text_general" indexed="true" stored="true" multiValued="true"/>
<field name="subject" type="text_general" indexed="true" stored="true"/>
<field name="description" type="text_general" indexed="true" stored="true"/>
<field name="comments" type="text_general" indexed="true" stored="true"/>
<field name="author" type="text_general" indexed="true" stored="true"/>
<field name="keywords" type="text_general" indexed="true" stored="true"/>
替換為
<field name="title" type="textComplex" indexed="true" stored="true" multiValued="true"/>
<field name="subject" type="textComplex" indexed="true" stored="true"/>
<field name="description" type="textComplex" indexed="true" stored="true"/>
<field name="comments" type="textComplex" indexed="true" stored="true"/>
<field name="author" type="textComplex" indexed="true" stored="true"/>
<field name="keywords" type="textComplex" indexed="true" stored="true"/>
6.開啟solr管理介面,選擇左側collection1的Analysis頁面;
Analyse Fieldname / FieldType選擇textComplex;
注:
針對mmseg4j-analysis.jar的bug處理
錯誤:
TokenStream contract violation: reset()/close() call missing, reset() called multiple times, or subclass does not call super.reset(). Please see Javadocs of TokenStream class for more information about the correct consuming workflow.
下載地址:https://code.google.com/p/mmseg4j/downloads/list
下載mmseg4j-1.9.1.zip,解壓得到裡面的mmseg4j-analysis資料夾;
找到MMSegTokenizer.java,修改reset()方法;
public void reset() throws IOException {
//lucene 4.0
//org.apache.lucene.analysis.Tokenizer.setReader(Reader)
//setReader 自動被呼叫, input 自動被設定。
super.reset(); //加這一句
mmSeg.reset(input);
}
修改後執行mvn clean package -DskipTests進行打包得到最新的mmseg4j-analysis-1.9.1.jar 並替換tomcat下solr的WEB-INF/lib/mmseg4j-analysis-1.9.1.jar。
mmseg4j-core:核心庫檔案;
mmseg4j-solr:solr支援庫檔案;
mmseg4j-analysis:分析庫檔案;
下載地址:http://mvnrepository.com/search?q=mmseg4j
參考地址:https://github.com/chenlb/mmseg4j-solr
參考地址:https://code.google.com/p/mmseg4j/downloads/list
目前mmseg4j官網不提供新版本下載,在maven庫選擇下載;
solr4.0以上版本請下載mmseg4j1.9.0以上版本;
選擇mmseg4j1.9.1下載;
2.拷貝(mmseg4j-core-1.9.1.jar、mmseg4j-solr-1.9.1.jar、mmseg4j-analysis-1.9.1.jar)到tomcat下的webapps/solr/WEB-INF/lib;
3.在solr的home目錄新建dic字典目錄;
4.配置solr中文分詞器
開啟solr的home目錄的collection1/conf/schema.xml檔案;
複製
<!-- 複雜分詞器 -->
<fieldtype name="textComplex" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="../dic"/><!--此處為分詞器詞典所處位置-->
</analyzer>
</fieldtype>
<!-- 最大單詞分詞器 -->
<fieldtype name="textMaxWord" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="max-word" />
</analyzer>
</fieldtype>
<!-- 最小單詞分詞器 -->
<fieldtype name="textSimple" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="simple" dicPath="../dic" /><!--此處為分詞器詞典所處位置-->
</analyzer>
</fieldtype>
新增到<types></types>裡面;
5.修改中文分詞器欄位
把<fields></fields>裡的
<field name="title" type="text_general" indexed="true" stored="true" multiValued="true"/>
<field name="subject" type="text_general" indexed="true" stored="true"/>
<field name="description" type="text_general" indexed="true" stored="true"/>
<field name="comments" type="text_general" indexed="true" stored="true"/>
<field name="author" type="text_general" indexed="true" stored="true"/>
<field name="keywords" type="text_general" indexed="true" stored="true"/>
替換為
<field name="title" type="textComplex" indexed="true" stored="true" multiValued="true"/>
<field name="subject" type="textComplex" indexed="true" stored="true"/>
<field name="description" type="textComplex" indexed="true" stored="true"/>
<field name="comments" type="textComplex" indexed="true" stored="true"/>
<field name="author" type="textComplex" indexed="true" stored="true"/>
<field name="keywords" type="textComplex" indexed="true" stored="true"/>
6.開啟solr管理介面,選擇左側collection1的Analysis頁面;
Analyse Fieldname / FieldType選擇textComplex;
注:
針對mmseg4j-analysis.jar的bug處理
錯誤:
TokenStream contract violation: reset()/close() call missing, reset() called multiple times, or subclass does not call super.reset(). Please see Javadocs of TokenStream class for more information about the correct consuming workflow.
下載地址:https://code.google.com/p/mmseg4j/downloads/list
下載mmseg4j-1.9.1.zip,解壓得到裡面的mmseg4j-analysis資料夾;
找到MMSegTokenizer.java,修改reset()方法;
public void reset() throws IOException {
//lucene 4.0
//org.apache.lucene.analysis.Tokenizer.setReader(Reader)
//setReader 自動被呼叫, input 自動被設定。
super.reset(); //加這一句
mmSeg.reset(input);
}
修改後執行mvn clean package -DskipTests進行打包得到最新的mmseg4j-analysis-1.9.1.jar 並替換tomcat下solr的WEB-INF/lib/mmseg4j-analysis-1.9.1.jar。