Solr作为搜索应用服务器,我们在使用过程中,不可避免的要使用中文搜索。以下介绍solr自带的中文分词器和第三方分词器IKAnalyzer。
注:下面操作在Linux下执行,所添加的配置在windon下依然有效。
运行环境
-
- Solr:6.5.1
- 系统 : Linux
以下是设置 solr中文分词器的方法。
注:开始之前,假定你已经成功登录solr的界面,并创建了core。
一:使用solr自带 中文分词器
1、进入解压好的solr文件夹根目录下执行以下命令
1 cp ./contrib/analysis-extras/lucene-libs/lucene-analyzers-smartcn-6.5.1.jar /opt/tomcat-solr/webapps/solr/WEB-INF/lib/
复制lucene-analyzers-smartcn-6.5.1.jar该文件到 Tomcat下的 solr web应用中的lib目录下,不清楚的可以看 执行命令的地址。复制的文件就是 solr自带的中文分词器。
注:如果没有解压的目录,那么在solrhome的目录下也存在contrib这个文件夹,如果你已经成功登录过solr界面的话。
2、进入core目录下的conf文件夹,
打开 managed-schema文件,跳至文件最后,在最后添加新的字段类型如下
1 <!--solr cnAnalyzer--> 2 <fieldType name="solr_cnAnalyzer" class="solr.TextField" positionIncrementGap="100"> 3 <analyzer type="index"> 4 <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/> 5 </analyzer> 6 <analyzer type="query"> 7 <tokenizer class="org.apache.lucene.analysis.cn.smart.HMMChineseTokenizerFactory"/> 8 </analyzer> 9 </fieldType>
fieldType: 字段类型属性
name: 字段类型名称(可以理解为Java的 数据类型名称。例如: int、double、String等Java中的数据类型名称)
class: 数据类型(默认文本数据即可,还有其他的例如:字符串、浮点、整形等)
看下面的配置文件中 其他字段类型,应该很容易理解了:
1 <!-- 字符串 --> 2 <fieldType name="string" class="solr.StrField" sortMissingLast="true" /> 3 <!-- 布尔类型 --> 4 <fieldType name="boolean" class="solr.BoolField" sortMissingLast="true"/> 5 <!-- 整形 --> 6 <fieldType name="int" class="solr.TrieIntField" precisionStep="0" positionIncrementGap&#