阿哥论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 916|回复: 0

solr中文分词(mmseg4j)-it论坛-计算机论坛

[复制链接]

2019

主题

1

好友

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

优秀会员 助人为乐 辛勤工作 技术精英 多才多艺 优秀班竹 灌水天才 星球管理 宣传大使 灌水之王 财富勋章 版主勋章 动漫勋章 勤奋会员 论坛精英 PS高手 心 8 闪游皮肤 双鱼座 8★8➹ 志愿者 乖

发表于 2013-12-29 19:27:00 |显示全部楼层
solr中文分词(mmseg4j)-it论坛-计算机论坛
1、从http://code.google.com/p/mmseg4j/   下载mmseg4j


2、在$SOLR_HOME下建立lib和dic两个目录,讲mmseg4j-all-1.8.4.jar拷贝到lib目录,将data里的.dic文件拷贝到dic目录

3、修改Schema.xml
添加fieldType
  1.   <types>
  2.        <fieldType name="textComplex" class="solr.TextField" positionIncrementGap="100" >   
  3.             <analyzer>   
  4.                <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="complex" dicPath="/opt/solr/example/solr/dic"/>   
  5.                <filter class="solr.LowerCaseFilterFactory"/>   
  6.            </analyzer>   
  7.        </fieldType>   
  8.   
  9.      <fieldType name="textMaxWord" class="solr.TextField" positionIncrementGap="100" >   
  10.         <analyzer>   
  11.             <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="max-word" dicPath="/opt/solr/example/solr/dic"/>   
  12.             <filter class="solr.LowerCaseFilterFactory"/>   
  13.         </analyzer>   
  14.      </fieldType>   
  15.       
  16.      <fieldType name="textSimple" class="solr.TextField" positionIncrementGap="100" >   
  17.        <analyzer>   
  18.            <tokenizer class="com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode="simple" dicPath="/opt/solr/example/solr/dic"/>   
  19.            <filter class="solr.LowerCaseFilterFactory"/>   
  20.        </analyzer>   
  21.      </fieldType>  

  22. ...
  23. </types>
复制代码
Xml代码
  1.     <field name="simple" type="textSimple" indexed="true" stored="true" multiValued="true"/>   
  2.     <field name="complex" type="textComplex" indexed="true" stored="true" multiValued="true"/>   
  3.     <field name="maxword" type="textMaxWord" indexed="true" stored="true" multiValued="true"/>
复制代码
Xml代码
  1.     <copyField source="simple" dest="text"/>  
  2.     <copyField source="complex" dest="text"/>  
复制代码
重启tomcat


进入 http://yourhost:8080/solr-example/admin/analysis.jsp


哦也,我们的中文分词大功告成了 it论坛-计算机论坛

我们试着提交些中文到solr里,然后进行查询
Xml代码
  1. chinese.xml
  2. <add>   
  3.         <doc>   
  4.                 <field name="id">1</field>   
  5.                 <field name="title">夜晚和白天不同,如果相机设置不准确的话,照片拍出来就会发糊。那么本期佳能单反课堂就带您详细了解夜景拍摄的参数设置,同时为您讲解什么叫做“安全快门”。除此之外,还有更多新奇有趣的特殊拍摄手法,还等什么?马上进入本期的节目吧!</field>   
  6.         </doc>   
  7.         <doc>   
  8.                 <field name="id">2</field>   
  9.                 <field name="title">冰动娱乐自主研发的虚幻3即时回合制网络游戏!UnrealEngine3倾力打造、最终幻想式的创新玩法以及天马行空般的幻想三国题材将带给你耳目一新的全新感受。</field>   
  10.         </doc>   
  11.         <doc>   
  12.                 <field name="id">3</field>   
  13.                 <field name="title">solr是基于lucene Java搜索库的企业级全文搜索引擎,目前是apache的一个项目。</field>   
  14.         </doc>   
  15.         <doc>   
  16.                 <field name="id">4</field>   
  17.                 <field name="title">中国人民银行是中华人民共和国的中央银行。</field>   
  18.         </doc>   
  19. </add>
复制代码
我们用curl进行提交 it论坛-计算机论坛
命令行代码
  1. curl 'http://localhost:8080/solr-example/update/?commit=true' -H "Content-Type: text/xml" --data-binary @chinese.xml
复制代码

接下来我们试着查询一下:


查询结果
Xml代码
  1. <response>
  2.     <lst name="responseHeader">
  3.         <int name="status">0</int>
  4.         <int name="QTime">2</int>
  5.         <lst name="params">
  6.             <str name="indent">on</str>
  7.             <str name="start">0</str>
  8.             <str name="q">title:单反</str>
  9.             <str name="rows">10</str>
  10.             <str name="version">2.2</str>
  11.         </lst>
  12.     </lst>
  13.     <result name="response" numFound="1" start="0">
  14.         <doc>
  15.             <str name="id">1</str>
  16.             <arr name="title"><str>夜晚和白天不同,如果相机设置不准确的话,照片拍出来就会发糊。那么本期佳能单反课堂就带您详细了解夜景拍摄的参数设置,同时为您讲解什么叫做“安全快门”。除此之外,还有更多新奇有趣的特殊拍摄手法,还等什么?马上进入本期的节目吧!</str></arr>
  17.        </doc>
  18.     </result>
  19. </response>
复制代码
可能会遇到的问题:1、在Query String:输入中文时候会乱码导致查询不到结果 it论坛-计算机论坛
解决办法:修改tomcat的server.xml
  1. <Server ...>
  2. <Service ...>
  3.    <Connector ... URIEncoding="UTF-8"/>
  4.      ...
  5.    </Connector>
  6. </Service>
  7. </Server>
复制代码
本文摘自:http://dsbjoe.iteye.com/blog/1181253



该会员没有填写今日想说内容.
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

回顶部