solr集成mmseg4j分词

到了分词这部,相信你已经把solr整合到tomcat里了,没有的话看我前面的文章有讲到。

我这里使用的是mmseg4j-1.9.1版本的。

http://down.51cto.com/data/1275975这个是下载zip的链接。

解压后把mmseg4j-1.9.1 文件夹下dist下的三个jar包拷贝到tomcat/webapps/solr/WEB-INF/lib下。

在schema.xml下配置分词器。

    <types>
    <fieldtype name="string"  class="solr.StrField" sortMissingLast="true" omitNorms="true"/>
    <fieldType name="long" class="solr.TrieLongField" precisionStep="0" positionIncrementGap="0"/>
    <fieldType name="int" class="solr.TrieIntField" precisionStep="0" positionIncrementGap="0"/>
    <fieldType name="textComplex" class="solr.TextField" >
      <analyzer>
        <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" />
      </analyzer>
    </fieldType>
    <fieldType name="textMaxWord" class="solr.TextField" >
      <analyzer>
        <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="max-word" />
      </analyzer>
    </fieldType>
    <fieldType name="textSimple" class="solr.TextField" >
      <analyzer>
        <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="simple" />
      </analyzer>
    </fieldType>
    </types>
  <fields>
      <field name="id"   type="int"    indexed="true"  stored="true"  />
      <field name="gender"  type="string"    indexed="true"  stored="true"   />
      <field name="name"      type="textComplex"    indexed="true"  stored="true"   />
      <field name="major"     type="textComplex"    indexed="true"  stored="true"   />
      <field name="grade"     type="textComplex"    indexed="true"  stored="true"   />
      <field name="_version_" type="long"      indexed="true"  stored="true"/>
  </fields>
<copyField source="major" dest="name"/>
<copyField source="grade" dest="name"/>

然后进入solr的页面。

分词的结果页面却是这样的。出现这样的错误:TokenStream contract violation: reset()/close() call missing, reset() called multiple times, or subclass does not call super.reset(). Please see Javadocs of TokenStream class for more information about the correct consuming workflow.然后通过查找网上资料。是源代码出错了。这个mmseg4j-1.9.1是一个maven项目来的。通过mawen导入项目修改下面的代码。

添加注释的代码super.reset();然后clean一下,install一下,target会生成一个mmseg4j-analysis-1.9.2-SNAPSHOT.jar文件,将他复制到tomcat/webapps/solr/WEB-INF/lib下,并改名为mmseg4j-analysis-1.9.2.jar,删除mmseg4j-analysis-1.9.1.jar,或者改名为mmseg4j-analysis-1.9.1.jar覆盖掉原来的jar。

重启tomcat,再测试,结果出来了:

分词成功了。

时间: 2024-10-11 23:24:07

solr集成mmseg4j分词的相关文章

solr5.0集成mmseg4j分词器

毕竟IK跟不上搜索引擎的步骤啊,以前用习惯了ik突然solr5.0却没有对应的版本(可能是我没找到吧).这里先用mmesg4j代替下,感觉还不错,集成流程超级简单,几步就搞定: 1.进入/tomcat/webapps/solr/WEB-INF/lib目录,将mmseg4j-solr-2.3.0.jar和mmseg4j-core-1.10.0.jar放进去 2.进入solr/home目录,建立自己的词库,我这里是建立my_dic文件夹,里面放一个wordsXXX.dic的文件就行(注意,自己的词库

Solr 5.x集成中文分词word,mmseg4j

使用标准分词器,如图: 使用word分词器 下载word-1.3.jar,注意solr的版本和word分词的版本 将文件word-1.3.jar拷贝至文件夹C:\workspace\Tomcat7.0\webapps\solr\WEB-INF\lib\下 修改如下文件C:\workspace\solr_home\solr\mysolr\conf\schema.xml ????在schema节点下添加如下节点: <fieldType name="word_cn" class=&qu

Solr系列二:Solr与mmseg4j的整合

mmseg4j是一个很好的中文分词器,solr与mmseg4j的整合也非常简单.如下: 第一步:下载mmseg4j的jar包,网上搜索一下有很多下载地址,如下是csdn上的一个连接:http://download.csdn.net/detail/nrs12345/6986585 第二步:将下载的mmseg4j-analysis-1.9.1.jar.mmseg4j-core-1.9.1.jar.mmseg4j-solr-2.2.0.jar这三个jar包复制到tomcat下的webapps/solr

Lucene5学习之使用MMSeg4j分词器

分类:程序语言|标签:C|日期: 2015-05-01 02:00:24 MMSeg4j是一款中文分词器,详细介绍如下: 1.mmseg4j 用 Chih-Hao Tsai 的 MMSeg 算法(http://technology.chtsai.org/mmseg/ )实现的中文分词器,并实现 lucene 的 analyzer 和 solr 的TokenizerFactory 以方便在Lucene和Solr中使用. 2.MMSeg 算法有两种分词方法:Simple和Complex,都是基于正向

Solr与mmseg4J的整合

Solr与mmseg4j部署 一. solr安装 1. 下载solr http://www.apache.org/dyn/closer.cgi/lucene/solr/ 2. apache-solr-1.4.1.zip解压,复制dist/apache-solr-1.4.1.war到TOMCAT_HOME/webapps下,改名为solr.war,启动tomcat; 3. 在控制台看到启动完毕关闭tomcat,有报错不用管; 4. 进入TOMCAT根目录,创建文件夹solr_home, 将apac

玩转大数据系列之Apache Pig如何与Apache Solr集成(二)

散仙,在上篇文章中介绍了,如何使用Apache Pig与Lucene集成,还不知道的道友们,可以先看下上篇,熟悉下具体的流程. 在与Lucene集成过程中,我们发现最终还要把生成的Lucene索引,拷贝至本地磁盘,才能提供检索服务,这样以来,比较繁琐,而且有以下几个缺点: (一)在生成索引以及最终能提供正常的服务之前,索引经过多次落地操作,这无疑会给磁盘和网络IO,带来巨大影响 (二)Lucene的Field的配置与其UDF函数的代码耦合性过强,而且提供的配置也比较简单,不太容易满足,灵活多变的

nutch,solr集成在hadoop上

nutch是一个应用程序,在我的这个项目里主要是做爬虫用,爬取后的内容寄存在hdfs上,所以在hdfs结合模块现已结合上去了. solr: 在eclipse新建动态页面项目,删去WebContent的一切内容. 在solr/dist下(或许/solr3.6.2/example/webapps下)解压solr.war  将一切内容拷贝到WenContent里. 修正WEB-INF里的web.xml 增加 solr/home/home/hadoop/solr3.6.2/example/solrtyp

[Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例二.

为了更好的排版, 所以将IK分词器的安装重启了一篇博文,  大家可以接上solr的安装一同查看.[Linux]Linux下安装和配置solr/tomcat/IK分词器 详细实例一: http://www.cnblogs.com/wang-meng/p/5814798.html 8, 打开浏览器查看solr可视化界面 到了这里solr就配置好了, 可是我们的IK 分词器还没有配置呢, 如果不配IK分词器的话 它是怎样分词的呢? 我们就来先看一下:  每个字都分成了一个词, 这当然不是我们想要的结果

详细solr集成搭建

在Linux上安装部署solr 之前的文章有在Linux上安装部署solr 可以直接戳这个地址 --------------------->https://www.cnblogs.com/hank-hush/p/12097644.html 我们分别将部署好的solr和tomcat复制成四份来测试 1.1首先我们来创建第一份 分别复制solrhome和tomcat (先配置第一份 之后直接复制第一份) [[email protected] solr]# cp -r solrhome solrhom