设为首页 收藏本站
查看: 1228|回复: 0

[经验分享] solr 的 field, copyfield ,dynamic field

[复制链接]

尚未签到

发表于 2017-12-19 11:32:39 | 显示全部楼层 |阅读模式
  Field:
  Field就是一个字段,定义一个Field很简单:
[html] view plain copy

  • <field name="price" type="sfloat" indexed="true" stored="true"/>
  基本上属性也和FieldType类似,他的属性会覆盖掉FieldType的同名属性。
  CopyField(本段内容直接从solr中文网copy而来):
你可能想让document的一些字段可以多次使用。solr 有一个字段复制机制,可以提交多个不同类型字段集中到一个字段。字段复制主要涉及两个概念,source和destination,一个是要复制的字段,另一个是要复制到哪个字段,以下是个例子:<copyFieldsource="cat"dest="text"maxChars="30000"/>  上例中,如果text字段有数据的话,cat字段的内容将被添加到text字段中。maxChars 参数,一个int类型参数,用于限制复制的字符数。
source和destination都支持通配符。以下是一个将所有以 _t 结尾的字段全部复制到text字段中。<copyFieldsource="*_t"dest="text"maxChars="25000"/>    其实说的简单一点,比如现在你要查询包涵"Java"的博客, 那么你肯定要查内容,标题是否包含Java,但是solr不能像SQL那样,where tittle like '%Java%'  or  content like '%Java%'.   这个时候copyField就派上用场了, 定义一个新字段,将title和content 复制到这个新字段,索引的时候,直接从这个新字段查询,这样就达到目地了。  这便是copyField的典型应用场景 。注意:如果dest由多个source构成,就需要将其指定为multiValued。在网上找了一个例子:[html] view plain copy

  • <schema name="eshequn.post.db_post.0" version="1.1"
  •     xmlns:xi="http://www.w3.org/2001/XInclude">
  •      <fields>
  •         <!-- for title -->
  •         <field name="t" type="text" indexed="true" stored="false" />
  •         <!-- for abstract -->
  •         <field name="a" type="text" indexed="true" stored="false" />
  •         <!-- for title and abstract -->
  •         <field name="ta" type="text" indexed="true" stored="false" multiValued="true"/>
  •     </fields>
  •     <copyField source="t" dest="ta" />
  •     <copyField source="a" dest="ta" />
  • </schema>
  DynamicField:   动态字段(Dynamic fields)允许 solr 索引没有在 schema 中明确定义的字段。这个在忘记定义一些字段时很有用。动态字段可以让系统更灵活,通用性更强。动态字段和常规字段类似,除了它名字中包含一个通配符外,在索引文档时,一个字段如果在常规字段中没有匹配时,将到动态字段中匹配。假设schema中定义了一个叫*_i的动态动态字段,如果要索引一个叫 cost_i 的字段,但是 schema 中不存在 cost_i 的字段,这样 cost_i  将被索引到 *_i 字段中。动态字段也是定义在 schema.xml 文件中,和其他字段一样,它也有个名词,字段类型,和属性。<dynamicFieldname="*_i"type="sint"indexed="true"stored="true"/>  建议在 schema.xml 定义一些基本的动态字段,以备扩展之用。
  原文链接:http://blog.csdn.net/zl3450341/article/details/12849341

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-425673-1-1.html 上篇帖子: 12.solr学习速成之dataimport 下篇帖子: 分布式搜索之搭建Solrcloud(Solr集群)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表