您的位置:首页 > 其它

solrcloud配置中文分词

2015-11-04 19:23 465 查看


solrcloud添加document、配置中文分词

上一篇文章写了如何搭建solrlcoud服务并根据默认配置进行简单查询,而这种简单查询还只能完全查询,并不可以模糊查询,今天说说添加中文分词和拼音分词

首先添加几篇文章,并且根据文章的结构可以有比如name,title,content。所以我们应该在上传文章前修改schema.xml文件,添加name、title、content等field。

接下来我们先将将schema.xml里面的一些属性,field、fieldType、dynamicField、copyField、analyser

fieldType:其实我们可以和数据库的表字段联系起来,这个fieldType就是field的类型,我们可以先定义好一些类型提供给field使用。

例如:
<fieldType name="string" class="solr.StrField" sortMissingLast="true" />
//在fieldType中可以有很多属性:
sortMissingLast           设置成true没有该field的数据排在有该field的数据之后,而不管请求时的排序规则, 默认是设置成false。
sortMissingFirst          跟上面倒过来。 默认是设置成false
analyzer                  字段类型指定的分词器

<field name="name" type="string" indexed="true" stored="true" />
//name     字段的名字
type     就是上面定义的fieldType
indexed      缺省true。 说明这个数据应被搜索和排序,如果数据没有indexed,则stored应是true。
stored       缺省true。说明这个字段被包含在搜索结果中是合适的。如果数据没有stored,则indexed应是true。如果希望被搜索后高亮显示需要设为true
omitNorms    字段的长度不影响得分和在索引时不做boost时,设置它为true。一般文本字段不设置为true。
termVectors  如果字段被用来做more like this 和highlight的特性时应设置为true。
compressed   字段是压缩的。这可能导致索引和搜索变慢,但会减少存储空间,只有StrField和TextField是可以压缩,这通常适合字段的长度超过200个字符。
multiValued  字段多于一个值的时候,可设置为true。

<dynamicField name="*_i"  type="int"    indexed="true"  stored="true"/>
//和field一样的作用只是dynamicField是动态的如果以后用到后缀为_i的所有field直接使用,不需要一一定义。


接下来配置分词器,将word-1.3.jar和pinyin4j-2.5.0.jar加入到solr-5.3.1/server/solr-webapp/webapp/WEB-INF/lib下

同时在你觉得需要搜索的字段fieldType下添加analyser
<field name="demo" type="text_zh" indexed="true" stored="true" required="true" multiValued="false" />
<fieldType name="text_zh" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="org.apdplat.word.solr.ChineseWordTokenizerFactory"/>
</analyzer>
<analyzer type="query">
<tokenizer class="org.apdplat.word.solr.ChineseWordTokenizerFactory"/>
</analyzer>
</fieldType>


最后将schema.xml更新上传到zookeeper上:
[root@localhost solr-5.3.1]# ./server/scripts/cloud-scripts/zkcli.sh -zkhost localhost:2181 -cmd upconfig -confname demo-conf -confdir server/solr/configsets/basic_configs/conf/


重启solrcloud服务中文分词拼音就可以使用了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  solrcloud