注:
- 文章只是记录操作步骤,不适合入门教学
- 直接利用内置的jetty,不使用tomcat
导入jar包
- 将如下的四个jar包放到E:\solr\server\solr-webapp\webapp\WEB-INF\lib目录下。其中AnsjTokenizerFactory-5.5.3-5.0.3.jar是自己写的一个工厂打成的jar包。
导入ansj字典
将从github上down下的ansj_seg源码中的library文件夹(其中包含三个文件ambiguity.dic、default.dic、synonyms.dic)拷贝到E:\solr\server\目录下,形成E:\solr\server\library。
注1 : 可通过查看log的方式,查看字典是否加载成功。
建立停用词词典
- 在E:\solr\server\library目录下,新建一个叫做stopwords.dic的停用词词典,其中存放停用词。
导入ansj配置文件
将从github上down下的ansj_seg源码中的ansj_library.properties配置文件,拷贝到E:\solr\server\resources目录下
注1: 亲测E:\solr\server\solr-webapp\webapp\WEB-INF\下新建classpath目录classes,并把properties配置文件拷贝到其中,并不能生效。
注2:从5.0.x的版本开始,配置文件中userLibrary被替换为dic。
schema文件中如下配置
<fieldType name="text_ansj" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="org.ansj.ansj_solr5_plug.AnsjTokenizerFactory" isQuery="false" stopwords="library/stopwords.dic"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.ansj.ansj_solr5_plug.AnsjTokenizerFactory" stopwords="library/stopwords.dic"/>
</analyzer>
</fieldType>
注1 : class所指向的工厂类,是自己写的。我封装在了AnsjTokenizerFactory-5.5.3-5.0.3.jar中。
注2:isQuery和ik分词器的useSmart是一个意思。
注3 : stopwords由自己写的AnsjTokenizerFactory工厂类去解析,指向停用词词典的位置。