请教一下,solr独立模式中,无法根据中全文检索技术solr。

Solr中文检索之copyField自定义配置
主要内容:
1:Solr copyField是什么?应用场景是什么?
2:copyField使用中文分词器及自定义字段
1 Solr copyField是什么?
1.1. 应用场景
我们在搜索(检索)的时候,比如输入凯哥Java。一篇文章一般分为标题、简介、内容、作者、创建时间、修改时间、分类、标签等其他很多字段。在检索的时候,输入的关键字需要指定字段(在solr中称为域,这里就姑且称之为字段。望理解)进行检索(不可能从一个表中所有字段进行检索,因为有些字段不需要)。比如,输入关键字想从标题、简介、内容、作者这四个字段中检索。那么我们是不是在solr的schema.xml文件中重复这四个字段,然后在刷新solr的时候每次冗余(这里使用了数据库字段的说法,不对的。为了便于理解就用冗余望理解)这四个字段吗?
当然不是,solr为我们提供了一个copyField这个字段(域)。也就是复制域。
1.2.语法:
&copyField source=”” dest=””&
source:原来的域。也就是你想要复制的域
dest(destination):目标域。也就是要复制到那个字段。
1.3.用法举例:
Solr的schema.xml中:
定义了name字段
&field name="sku" type="text_en_splitting_tight" indexed="true" stored="true" omitNorms="true"/&
&field name="name" type="text_general" indexed="true" stored="true"/&
&field name="manu" type="text_general" indexed="true" stored="true" omitNorms="true"/&
&field name="cat" type="string" indexed="true" stored="true" multiValued="true"/&
&field name="features" type="text_general" indexed="true" stored="true" multiValued="true"/&
&field name="includes" type="text_general" indexed="true" stored="true" termVectors="true" termPositions="true" termOffsets="true" /&
定义了一个text字段:
&!-- catchall field, containing all other searchable text fields (implemented
via copyField further on in this schema --&
&field name="text" type="text_general" indexed="true" stored="false" multiValued="true"/&
将name字段内容复制到text字段中:
copayField dest到text域
&copyField source="name" dest="text"/&
2 copy到使用了自定义的中文分词器中说明:将name这个字段(域)复制到text字段(域)中。
2.1.先solr中引入中文分词器(这里就省略。以后会详细讲解)
2.2.在solr的schema.xml中添加自定义的分词类型
&fieldType name="text_kaige" class="solr.TextField"&
&analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/&
&/fieldType&
2.3.在copyField字段使用自定义目标和自定义中文分词器
2.3.1创建自定义目标字段使用自定义的中文分词器
&field name="keywords_text" type="text_kaige" indexed="true" stored="false" multiValued="true"/&
&!--自定义 --&
&fieldType name="text_kaige" class="solr.TextField"&
&analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/&
&/fieldType&
&!--自定义目标域--&
&field name="keywords_text" type="text_kaige" indexed="true" stored="false" multiValued="true"/&
&!-- copyField使用自定义目标域--&
&copyField source="product_name" dest="keywords_text"/&
&copyField source="product_catalog_name" dest="keywords_text"/&
配置完成重启solr服务。
使用代码测试:
检索高亮显示结果:
检索目标:
进行检索结果:
结果评测:
出现想要的结果且高亮。至此配置自定义目标域使用自定义分词器ok.
需要注意的:
在使用copyField时候,source和dest这两个都需要先申明才可以。
欢迎关注凯哥微信公众号:凯哥Java
责任编辑:
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
大型电商项目视频
凯哥java博客
今日搜狐热点使用solr搭建你的全文检索_百度文库
赠送免券下载特权
10W篇文档免费专享
部分付费文档8折起
每天抽奖多种福利
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
使用solr搭建你的全文检索
阅读已结束,下载本文需要
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,同时保存到云知识,更方便管理
加入VIP
还剩4页未读,
定制HR最喜欢的简历
你可能喜欢}

我要回帖

更多关于 solr检索 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信