linux php solr扩展里面的扩展停止词字典是什么意思

solr分词配置及其扩展词典配置_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
solr分词配置及其扩展词典配置
上传于||文档简介
&&s​o​l​r​分​词​配​置​,​扩​展​词​典​配​置​,​停​用​词​词​典​配​置​,​近​义​词​词​典​配​置
阅读已结束,如果下载本文需要使用1下载券
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩5页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢& & &在使用solr4.9的过程中,使用了IKAnalyzer分词器,其中遇到了不少问题,现在做个记录,以备后续只用。
& & &首先使用IKAnalyzer是看到群里有人介绍,但是貌似现在IKAnalyzer已经没人更新了。。。不知道是不是真的,先不管这些,下面介绍一下如何在solr中使用它。
& & &在solr的配置文件schema.xml中添加
&!--IKAnalyzer--&
&&&&fieldType name=&text_ik& class=&solr.TextField& positionIncrementGap=&100&&
&analyzer type=&index&&
&tokenizer class=&org.wltea.analyzer.lucene.IKAnalyzerSolrFactory&
isMaxWordLength=&false&/&
&filter class=&solr.LowerCaseFilterFactory&/&
&/analyzer&
&analyzer type=&query&&
&tokenizer class=&org.wltea.analyzer.lucene.IKAnalyzerSolrFactory&
isMaxWordLength=&true&/&
&filter class=&solr.SynonymFilterFactory& synonyms=&synonyms.txt& ignoreCase=&true& expand=&true&/&
&filter class=&solr.LowerCaseFilterFactory&/&
&/analyzer&
&/fieldType& & & 其中的org.wltea.analyzer.lucene.IKAnalyzerSolrFactory类是自己扩展的,一会我会把IKAnalyzer扩展到Jar包传上来。
synonyms.txt在solr_home/didi/conf文件下。
& &配置扩展词跟扩展停顿词配置入下:
IKAnalyzer.cfg.xml内容如下:
&?xml version=&1.0& encoding=&UTF-8&?&
&!DOCTYPE properties SYSTEM &/dtd/properties.dtd&&
&properties&
&comment&IK Analyzer 扩展配置&/comment&
&!--用户可以在这里配置自己的扩展字典
&entry key=&ext_dict&&ext.&/entry&
&entry key=&ext_dict&&mydict.&/entry&
&!--用户可以在这里配置自己的扩展停止词字典--&
&entry key=&ext_stopwords&&stopword.&/entry&
&/properties&
jar包下载路径: 原文链接:
阅读排行榜同义词:搜索结果里出现的同义词。如我们输入”还行”,得到的结果包括同义词”还可以”。
停止词:在搜索时不用出现在结果里的词。比如is 、a 、are 、”的”,“得”,“我” 等,这些词会在句子中多次出现却无意义,所以在分词的时候需要把这些词过滤掉。
扩展词:在搜索结果里额外出现的词。扩展词只能是你输入词的本身或子串。比如我们 输入”重庆开县人”,正常分词得到的结果是“重庆” “开县”“人”;当我们在扩展词里加入“重庆开县”时,分词的结果是“重庆开县”“重庆” “开县”“人”。
配置同义词
1.在solr_home的conf目录下的schema.xml 中配置同义词text_syn:
name="text_syn" class="solr.TextField"&
type="query"&
class="solr.WhitespaceTokenizerFactory"/&
class="solr.LowerCaseFilterFactory"/&
type="index"&
class="solr.WhitespaceTokenizerFactory"/&
class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="false" /&
class="solr.LowerCaseFilterFactory"/&
2.假定在solr_home的conf目录下的schema.xml 中要对shortName字段进行同义词配置,则我们需要将type属性设为上向配置的”text_syn”
&field name="shortName" type="text_syn" indexed="true" stored="true" /&
3.在conf目录下的 synonyms.txt 中增加同义词,如:
这里我多说两句:上面红框里的 =& 右侧的词是左侧词的同义词,多个时用空格隔开。还有就是,最好不要直接打开synonyms.txt这个文件,因为加入的汉字在保存后会查不出来,因为txt不是UTF-8的格式保存的。
4.测试同义词
输入高兴:
输入中华:
5.基于上面的问题,说下怎么解决,毕竟不论我们输入中华还是中国,都能有对应的同义词结果。
首先,我们将synonyms.txt里的同义词用英文逗号隔开,然后将上面配置IK同义词里的expand属性设为true。
我们输入:大大的,结果如下:
配置停止词和扩展词库。
1.将IKAnalyzer解压文件夹下的stopword.dic和IKAnalyzer.cfg.xml复制到tomcat/webapps/solr/WEB-INF/classes下,再新建一个ext.dic,里面的格式和stopword.dic一致。
2.修改IKAnalyzer.cfg.xml如下面的格式可以配置多个停止词或者扩展词库文件。
&IK Analyzer 扩展配置&
key="ext_dict"&ext.&
key="ext_stopwords"&english_stopword.stopword.dic&
输入“重庆开县”时,正常分词是只有”重庆” “开县”的
在ext.dic里添加了”重庆开县”后,测试结果:
输入“重庆开县”时,正常分词是只有”重庆” “开县”的
在stopword.dic里添加了“开县”之后,测试结果:
字段如果要能被分词,或是停止词,或是扩展词,需要在schema.xml里配置该字段时,给该字段的type属性配成分词类型,我们这里是text_ik,例:
&field name="companyName" type="text_ik" indexed="false" stored="true" multiValued="false" /&
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:24388次
排名:千里之外
原创:69篇
评论:11条
文章:13篇
阅读:14283
(2)(5)(3)(15)(17)(9)(25)

我要回帖

更多关于 扩展停止词字典 的文章

 

随机推荐