solr配置中文分词器mmseg4j


solr的安装和索引库初始化在两外两个帖子里已经写过

solr安装:http://www.cnblogs.com/henghengdh/p/solr安装.html

solr初始化索引库:http://www.cnblogs.com/henghengdh/p/3467767.html

现在写下solr的中文分词配置。

1.首先下载最新版本的mmseg4j-1.9.1,之前我安装的solr是4.6版本,mmseg4j-1.9.1并不支持,只好换成了solr4.5.1.

下载完后解压,将mmseg4j-1.9.1\dist下的三个jar包放到solr服务器tomcat\webapps\solr\WEB-INF\lib下。

2.在解压后的mmseg4j-1.9.1文件夹中找到README.txt,里边有分词器的配置代码,如下

 

<fieldType name="textComplex" class="solr.TextField" >
      <analyzer>
        <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="dic"/>
      </analyzer>
    </fieldType>
    <fieldType name="textMaxWord" class="solr.TextField" >
      <analyzer>
        <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="max-word" dicPath="dic"/>
      </analyzer>
    </fieldType>
    <fieldType name="textSimple" class="solr.TextField" >
      <analyzer>
        <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="simple" dicPath="n:/OpenSource/apache-solr-1.3.0/example/solr/my_dic"/>
      </analyzer>
    </fieldType>

去掉dicPath="dic",然后将代码放入$solrhome\jxet\conf\schema.xml中的types节点中

  

3.配置自己的索引库字段,solr的索引库字段配置都在$solrhome\jxet\conf\schema.xml中,详细参看官方wiki:http://wiki.apache.org/solr/SchemaXml。我这里的配置如下

  

  如上图,需要分词的字段type都改成textComplex。

 

  然后需要纳入搜索的字段单独配下copyField,如下图

  

  这样这五个字段都将被拷贝进text索引字段中,搜索是会对这几个字段同时进行搜索。

 

4.配置完成后启动solr服务器,检验下中文分词是否配置成功。进入solr管理页面,进入自己配的索引库选项卡jxet-Analysis中,可以看到下图

  

这里有我们自己配置的字段,选中任意一个我们配置了中文分词的字段,如content,然后在Field Value (Index)框中随便输入一句话,然后点Analyse valuie按钮,就可以看到分词结果,如下

  

5.向索引库中添加数据(我这里使用solrJ集成到自己的项目中使用的,后边会再开个帖子说这部分),然后在Query选项卡中查看结果,如下图

  

在q框中输入text:期中 认真,点击搜索,右边的搜索结果,可以看到content中包含的“认真”和“期中”的信息被查询了出来。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM