solr中文分词(mmseg4j)
1、从 http://code.google测试数据/p/mmseg4j/ 下载mmseg4j
2、在$SOLR_HOME下建立lib和dic两个目录,讲mmseg4j-all-1.8.4.jar拷贝到lib目录,将data里的.dic文件拷贝到dic目录
3、修改Schema.xml
添加fieldType
Xml代码
< types > < fieldType name = "textComplex" class = "solr.TextField" positionIncrementGap = "100" > < analyzer > < tokenizer class = "com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode = "complex" dicPath = "/opt/solr/example/solr/dic" /> < filter class = "solr.LowerCaseFilterFactory" /> </ analyzer > </ fieldType > < fieldType name = "textMaxWord" class = "solr.TextField" positionIncrementGap = "100" > < analyzer > < tokenizer class = "com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode = "max-word" dicPath = "/opt/solr/example/solr/dic" /> < filter class = "solr.LowerCaseFilterFactory" /> </ analyzer > </ fieldType > < fieldType name = "textSimple" class = "solr.TextField" positionIncrementGap = "100" > < analyzer > < tokenizer class = "com.chenlb.mmseg4j.solr.MMSegTokenizerFactory" mode = "simple" dicPath = "/opt/solr/example/solr/dic" /> < filter class = "solr.LowerCaseFilterFactory" /> </ analyzer > </ fieldType > .. </ types >
Xml代码
< field name = "simple" type = "textSimple" indexed = "true" stored = "true" multiValued = "true" /> < field name = "complex" type = "textComplex" indexed = "true" stored = "true" multiValued = "true" /> < field name = "maxword" type = "textMaxWord" indexed = "true" stored = "true" multiValued = "true" />
Xml代码
< copyField source = "simple" dest = "text" /> < copyField source = "complex" dest = "text" />
重启tomcat
进入 http://yourhost:8080/solr-example/admin/analysis.jsp
哦也,我们的中文分词大功告成了
我们试着提交些中文到solr里,然后进行查询
Xml代码
chinese.xml < add > < doc > < field name = "id" > 1 </ field > < field name = "title" > 夜晚和白天不同,如果相机设置不准确的话,照片拍出来就会发糊。那么本期佳能单反课堂就带您详细了解夜景拍摄的参数设置,同时为您讲解什么叫做“安全快门”。除此之外,还有更多新奇有趣的特殊拍摄手法,还等什么?马上进入本期的节目吧! </ field > </ doc > < doc > < field name = "id" > 2 </ field > < field name = "title" > 冰动娱乐自主研发的虚幻3即时回合制网络游戏!UnrealEngine3倾力打造、最终幻想式的创新玩法以及天马行空般的幻想三国题材将带给你耳目一新的全新感受。 </ field > </ doc > < doc > < field name = "id" > 3 </ field > < field name = "title" > solr是基于Lucene Java搜索库的企业级全文搜索引擎,目前是apache的一个项目。 </ field > </ doc > < doc > < field name = "id" > 4 </ field > < field name = "title" > 中国人民银行是中华人民共和国的中央银行。 </ field > </ doc > </ add >我们用curl进行提交
命令行代码
curl 'http://localhost:8080/solr-example/update/?commit=true' -H "Content-Type: text/xml" --data-binary @chinese.xml
接下来我们试着查询一下:
查询结果
Xml代码
< response > < lst name = "responseHeader" > < int name = "status" > 0 </ int > < int name = "QTime" > 2 </ int > < lst name = "params" > < str name = "indent" > on </ str > < str name = "start" > 0 </ str > < str name = "q" > title:单反 </ str > < str name = "rows" > 10 </ str > < str name = "version" > 2.2 </ str > </ lst > </ lst > < result name = "response" numFound = "1" start = "0" > < doc > < str name = "id" > 1 </ str > < arr name = "title" > < str > 夜晚和白天不同,如果相机设置不准确的话,照片拍出来就会发糊。那么本期佳能单反课堂就带您详细了解夜景拍摄的参数设置,同时为您讲解什么叫做“安全快门”。除此之外,还有更多新奇有趣的特殊拍摄手法,还等什么?马上进入本期的节目吧! </ str > </ arr > </ doc > </ result > </ response >
可能会遇到的问题:
1、在 Query String: 输入中文时候会乱码导致查询不到结果
解决办法:修改tomcat的server.xml
Xml代码
< Server ... > < Service ... > < Connector ... URIEncoding = "UTF-8" /> ... </ Connector > </ Service > </ Server >
作者: Leo_wl
出处: http://HdhCmsTestcnblogs测试数据/Leo_wl/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
版权信息查看更多关于solr中文分词(mmseg4j)的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did47788