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

[经验分享] Solr入门之(5)配置文件schema.xml

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-7-17 10:33:44 | 显示全部楼层 |阅读模式
  该配置文件中的标签:、、、

   fieldType说明
  标签types中定义了field可以使用的类型,类型定义中可以指定document中字段的常用属性及分词规则
solr中提供了多个预定义的fieldType,另外用户也可以自定义fieldType(比如中文分词的配置)。
  一、fieldType常用属性

A、name:    字段类型名   
B、class:    java类名   
C、indexed:    缺省true。 说明这个数据应被搜索和排序,如果数据没有indexed,则stored应是true。   
D、stored:    缺省true。说明这个字段被包含在搜索结果中是合适的。如果数据没有stored,则indexed应是true。   
E、sortMissingLast:    指没有该指定字段数据的document排在有该指定字段数据的document的后面   
F、sortMissingFirst:    指没有该指定字段数据的document排在有该指定字段数据的document的前面   
G、omitNorms:    字段的长度不影响得分和在索引时不做boost时,设置它为true。一般文本字段不设置为true。   
H、termVectors:    如果字段被用来做more like this 和highlight的特性时应设置为true。   
I、compressed:    字段是压缩的。这可能导致索引和搜索变慢,但会减少存储空间,只有StrField和TextField是可以压缩,这通常适合字段的长度超过200个字符。   
J、multiValued:    字段多于一个值的时候,可设置为true。详细说明参见:http://blog.iyunv.com/alen1985/article/details/8538942
K、positionIncrementGap:    和multiValued一起使用,设置多个值之间的虚拟空白的数量   
  二、fieldType子标签analyzer
  定义该类型字段的分词规则、过滤规则等。type:index/query。
  A、tokenizer:指定该类型的文本分词器,如何切分为tokens。
  B、filter:过滤器,常用的有停用词、同义词、大小写等过滤。可以定义多个。
  三、fileType示例








































































  其余详细请参照solr提供的默认schema.xml文件,solr中提供了许多预制的类型。
  

  fields标签说明
  fields中有两种字段定义方式:field和dynamicField。此两种方式的区别就是绝对匹配和模糊匹配,其属性相同。
一、field和dynamicField的常用属性

A、name:     必须定义。 - 字段的名称   
B、class:    必须定义。 - 只能引用fieldTypes中定义的fieldType。   
C、indexed:    缺省true。 说明这个数据应被搜索和排序,如果数据没有indexed,则stored应是true。   
D、stored:    缺省true。说明这个字段被包含在搜索结果中是合适的。如果数据没有stored,则indexed应是true。   
E、sortMissingLast:    指没有该指定字段数据的document排在有该指定字段数据的document的后面   
F、sortMissingFirst:    指没有该指定字段数据的document排在有该指定字段数据的document的前面   
G、omitNorms:    字段的长度不影响得分和在索引时不做boost时,设置它为true。一般文本字段不设置为true。   
H、termVectors:    如果字段被用来做more like this 和highlight的特性时应设置为true。   
I、compressed:    字段是压缩的。这可能导致索引和搜索变慢,但会减少存储空间,只有StrField和TextField是可以压缩,这通常适合字段的长度超过200个字符。   
J、multiValued:    字段多于一个值的时候,可设置为true。详细说明参见:http://blog.iyunv.com/alen1985/article/details/8538942
K、positionIncrementGap:    和multiValued一起使用,设置多个值之间的虚拟空白的数量   
L、docValues: 默认[true]。是否使用doc values. doc values 在 facet、group、sort和function queries时很有用。当前只支持StrField、UUIDField、所有的Trie*Fields。
M、omitNorms: 可以通过将omitNorms=“true”来减少indexed fields数量增加所带来的影响。
N、termVectors: 默认[false]。是否保存该字段的term vector。当使用MoreLikeThis时,为了有比较的效果,应该保存。
O、termPositions: 是否保存term vector的位置信息,如果保持会增加存储的消耗。效果详见下图。
P、termOffsets: 是否保存term vector的偏移信息。
Q、required: 必选。当该值不存在时抛出异常。
R、default: 默认值。
DSC0000.jpg
  二、动态字段说明


动态字段(Dynamic fields)允许 solr 索引没有在 schema 中明确定义的字段。这个在忘记定义一些字段时很有用。动态字段可以让系统更灵活,通用性更强。

动态字段和成规字段类似,除了它名字中包含一个通配符外,在索引文档时,一个字段如果在常规字段中没有匹配时,将到动态字段中匹配。

假设schema中定义了一个叫*_i的动态动态字段,如果要索引一个叫 cost_i 的字段,但是 schema 中不存在 cost_i 的字段,这样 cost_i  将被索引到 *_i 字段中。

动态字段也是定义在 schema.xml 文件中,和其他字段一样,它也有个名词,字段类型,和属性。

三、schema.xml示例





















  uniqueKey
  相当于数据库中主键的定义。
id
  

  
  copyField说明
  对于查询来说,如果查询字段要来自多个字段,一种选择是使用CopyField,化多个字段为一个字段,缺点是不能区分各个字段的重要度差别。比如文章的标题和摘要,标题就要比摘要重要性更强,如果有这方面的要求,可以选择查询多个字段的做法。
  CopyField示例:









  
  

运维网声明 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-87580-1-1.html 上篇帖子: solr开发从查询结果集中获取对象数据 下篇帖子: Solr Server对外提供Web Service的沟通方式 使用SolrJ跟Solr Server通信
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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