- <field name="id" type="string" indexed="true" stored="true" required="true" />
- <field name="ant_title" type="textComplex" indexed="true" stored="true" />
- <field name="ant_content" type="textComplex" indexed="true" stored="true" />
-
<field name="all" type="textComplex" indexed="true" stored="false" multiValued="true"/>
- <field name="all" type="textComplex" indexed="true" stored="false" multiValued="true"/>
- <copyField source="ant_title" dest="all"/>
- <copyField source="ant_content" dest="all"/>
下面就来看一下中文分词吧,这里用的分词是IK Analyzer 2012。
中文分词
1 <!-- IKAnalyzer2012 --> 2 <fieldType name="text_ika" class="solr.TextField"> 3 <analyzer type="index" positionIncrementGap="100" autoGeneratePhraseQueries="true"> 4 <tokenizer class="org.wltea.analyzer.solr.IKTokenizerFactory" isMaxWordLength="false"/> 5 <!-- <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" /> --> 6 <!-- <filter class="solr.LowerCaseFilterFactory"/> --> 7 </analyzer> 8 <analyzer type="query"> 9 <tokenizer class="org.wltea.analyzer.solr.IKTokenizerFactory" isMaxWordLength="true" /> 10 <!-- <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" /> --> 11 <!-- <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/> --> 12 <!-- <filter class="solr.LowerCaseFilterFactory"/> --> 13 </analyzer> 14 </fieldType>
分词用的依旧是fieldType,为的是在下面的field中能够用到。
有两个analyzer,一个是index,一个是query,index是针对于所有,query是针对于搜索。
可以看到我注掉了两个filter,为什么呢。
先说简单的吧,一个是query中的同义词Filter,solr.SynonymFilterFactory,注掉他是因为当前没有一个庞大的词库能够支撑中文如此复杂的同义词量。
另外一个是忽略大小写的Filter,这个Filter可以根据自己的需要进行添加或删除,在我们的系统中,主要处理中文,这个用处也不大。
还有一个注掉的Filter是停词Filter,这个用处挺大的,为什么注掉呢?因为我感觉他在这里不太合适。
解释一下:停词组件在中文分词中很重要,IK也提供了相对应的配置方法,不仅仅可以处理停词,而且还可以自定义词库。所以,我建议将停词在IK中配置而不是在schema.xml中。
两种方法都说一下:
第一种:在schema.xml中配置,不要注释stopword组件,并将停词文件拷贝至solrHome/core/conf目录下(注意文件的编码方式,至少保证文本文件是UTF-8格式,更加严格的,保证文本文件是无BOM格式的UTF-8编码)。
第二种:在IK配置文件中配置,请下载一个IK分词组件,里面会有一个IKAnalyzer.cfg.xml的配置文件,拷贝到solr项目的源代码根目录下,并将stopword.dic也拷贝到根目录下,如下图所示:
记得要导入IK的Jar包,这样,在你的文件中就可以使用IK提供的中文分词了。
给一个我用的stopword.dic,去下载。
IK也可以自定义词库,这个可以看一下IK的文档,很简单,将你的自定义词库的文件拷贝至根目录,并在IK配置文件中配置即可。
(注意IK Solr4.0配置)
这里特别的罗嗦几句,在Solr4.0发布以后,官方取消了BaseTokenizerFactory接口,而直接使用Lucene Analyzer标准接口。因此IK分词器2012 FF版本也取消了org.wltea.analyzer.solr.IKTokenizerFactory类。
4.1 solr4.0配置样例
使用IKAnalyzer的配置
<fieldType name="text" class="solr.TextField">
<analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/>
</fieldType>
相关推荐
3. **配置Schema.xml**:在 Solr 的 schema.xml 文件中,我们需要定义字段类型(FieldType)并指定使用 ikanalyzer。例如,可以创建一个名为 `text_ik` 的字段类型,并设置其`analyzer_class`属性为 `org.apache....
配置文件(如`schema.xml`或`solrconfig.xml`)需要更新以指示Solr使用IKAnalyzer进行分词。JAR库文件(如`ik-analyzer.jar`)则需要添加到Solr的类路径中,以便在运行时能够加载和使用分词器。字典文件通常包含预定...
在实际应用中,用户可能需要配置Solr的schema.xml文件,指定使用IKAnalyzer作为默认的字段分析器,同时根据需求选择合适的分词策略。同时,通过solr-analyzer-extra-5.3.jar,用户还可以集成更多的文本处理功能,如...
ikanalyzer的配置主要涉及两个步骤:添加分词器jar包和配置schema.xml。 a. **添加jar包**:将ikanalyzer的jar文件(如`ikanalyzer-2012_u6.jar`)放入Solr的`server/solr-webapp/webapp/WEB-INF/lib`目录下。这样...
2. **配置Solr schema.xml**:在Solr的schema.xml文件中,定义字段类型(fieldType),并指定使用Ik Analyzer。例如: ```xml <fieldType name="text_ik" class="solr.TextField" positionIncrementGap="100"> ...
3. **配置Solr**:在`solrconfig.xml`中配置分词器,指定使用IKAnalyzer,并在`schema.xml`中定义字段类型,指定该字段使用IKAnalyzer进行分词。 4. **重启Solr**:完成上述配置后,重启Solr服务器,使新的分词器...
- **修改schema.xml**:在Solr的`conf`目录下,找到`schema.xml`文件,这是定义字段类型和字段的配置文件。我们需要在其中添加IKAnalyzer作为某个字段的分析器,例如: ```xml <fieldType name="text_ik" class=...
2. **配置分析器**:在Solr的schema.xml文件中,配置默认的分析器为IKAnalyzer,指定词典路径。 3. **重启Solr**:完成配置后,重启Solr服务使改动生效。 4. **测试验证**:创建或更新索引,然后通过Solr的Admin UI...
在实际应用中,配置IKAnalyzer与Solr集成时,你需要在Solr的schema.xml或managed-schema文件中定义字段类型,并指定使用IKAnalyzer。例如: ```xml <fieldType name="text_ik" class="solr.TextField" ...
使用IK分词器,应为该集群使用到的solr版本为4.10.3-cdh5.7.5,所以使用的 IK 包为IKAnalyzer2012FF_u1.jar,如果是3x的solr,使用IKAnalyzer2012_u6.jar 具体操作如下: 引用 1.在/opt/cloudera/parcels/CDH/lib/...
IKAnalyzer中文分词器本身已经不支持最新的solr 5,集成到solr中分词会报错,这里将解决了solr 5支持问题的最新IK包共享出来,希望能帮到各位! 附上IK在schema.xml中的配置: <fieldType name="text_ik" class=...
- 配置Solr的schema.xml,添加IKAnalyzer作为默认的分析器,如: ``` <fieldType name="text_cjk" class="solr.TextField" positionIncrementGap="100"> <analyzer type="index"> <tokenizer class="org.apache...
2. 配置 Solr 的 schema.xml 文件,指定使用 ikanalyzer 作为字段的分析器。例如,可以在 `<fieldType>` 标签中添加以下内容: ``` <fieldType name="text_ikanalyzer" class="solr.TextField" ...
安装和配置过程通常包括解压压缩包、配置Solr的schema.xml文件以包含Ik Analyzer、启动Solr服务,并将Ik Analyzer相关的jar文件添加到Solr的类路径中。 总之,"solr-7.7.2+ik-analyzer-solr7x.zip"提供了Solr 7.7.2...
3. **配置schema.xml**:打开Solr的`conf/schema.xml`文件,我们需要为需要分词的字段定义一个`<fieldType>`,并指定使用IKAnalyzer。例如: ```xml <fieldType name="text_ik" class="solr.TextField" ...
2. **配置schema.xml**:在Solr的配置文件`schema.xml`中,定义字段类型(fieldType)并指定使用IKAnalyzer。例如: ```xml <fieldType name="text_ik" class="solr.TextField"> <analyzer type="index"> ...
在Cloudera平台下安装Solr分词器的教程可能是指导用户如何在基于Hadoop的Cloudera环境中部署和配置Solr,包括如何将IK Analyzer集成到Solr的schema.xml文件中,以及如何启动和测试分词器。这通常涉及到添加库依赖、...
在Solr的配置文件schema.xml中,我们需要定义一个字段类型(fieldType),并指定ikanalyzer作为其分析器。 ```xml <fieldType name="text_ik" class="solr.TextField" positionIncrementGap="100"> <analyzer type...
ikanalyzer-solr6.5 是一个专门为Solr 6.5版本设计的中文分词器,它基于ikanalyzer,并且进行了优化以更好地适应Solr的索引和搜索需求。ikanalyzer是一个开源的、基于Java实现的中文分词库,主要用于解决中文文本...