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

[经验分享] 利用SOLR搭建企业搜索平台 之——模式配置Schema.xml

[复制链接]

尚未签到

发表于 2015-7-18 09:40:32 | 显示全部楼层 |阅读模式
来源:http://blog.iyunv.com/awj3584/article/details/16963525

schema.xml这个配置文件可以在你下载solr包的安装解压目录的\solr\example\solr\collection1\conf中找到,它就是solr模式关联的文件。打开这个配置文件,你会发现有详细的注释。模式组织主要分为三个重要配置


1. types 部分

是一些常见的可重用定义,定义了 Solr(和 Lucene)如何处理 Field。也就是添加到索引中的xml文件属性中的类型,如int、text、date等.




1
2
3
4
5
6
7
8
9
10
11   
12
13   
14
15   
16
17
18
19
20
21   
22
23   
24
25   
26
27   
28
29
30
31
  
  参数说明:

  属性

  描述


name



标识而已



class



和其他属性决定了这个fieldType的实际行为。



sortMissingLast



设置成true没有该field的数据排在有该field的数据之后,而不管请求时的排序规则, 默认是设置成false。



sortMissingFirst



跟上面倒过来呗。 默认是设置成false



analyzer



字段类型指定的分词器



type



当前分词用用于的操作.index代表生成索引时使用的分词器query代码在查询时使用的分词器



tokenizer



分词器类



filter



分词后应用的过滤器  过滤器调用顺序和配置相同.



2. fileds

是你添加到索引文件中出现的属性名称,而声明类型就需要用到上面的types
















  
  field: 固定的字段设置
  dynamicField: 动态的字段设置,用于后期自定义字段,*号通配符.例如: test_i就是int类型的动态字段.
copyField:一般用于检索时用的字段。这样就只对这一个字段进行索引分词就行了copyField的dest字段如果有多个source一定要设置multiValued=true,否则会报错的

  

  属性

  描述


name



字段类型名



class



java类名



indexed



缺省true。 说明这个数据应被搜索和排序,如果数据没有indexed,则stored应是true。



stored



缺省true。说明这个字段被包含在搜索结果中是合适的。如果数据没有stored,则indexed应是true。



omitNorms



字段的长度不影响得分和在索引时不做boost时,设置它为true。

一般文本字段不设置为true。



termVectors



如果字段被用来做more like this 和highlight的特性时应设置为true。



compressed



字段是压缩的。这可能导致索引和搜索变慢,但会减少存储空间,只有StrField和TextField是可以压缩,这通常适合字段的长度超过200个字符。



multiValued



字段多于一个值的时候,可设置为true。



positionIncrementGap



和multiValued一起使用,设置多个值之间的虚拟空白的数量


  字段属性说明:
注意:_version_ 是一个特殊字段,不能删除,是记录当前索引版本号的.


3. 其他配置

uniqueKey: 唯一键,这里配置的是上面出现的fileds,一般是id、url等不重复的。在更新、删除的时候可以用到。

defaultSearchField:默认搜索属性,如q=solr就是默认的搜索那个字段

solrQueryParser:查询转换模式,是并且还是或者(AND/OR必须大写)


来源:http://blog.iyunv.com/zx13525079024/article/details/25043447

   1.fieldtype节点
  fieldtype节点主要用来定义数据类型。   












  
  name指定的是节点定义的名称
  class指向org.apache.solr.analysis中定义的类型名称
  fieldtype还可以自己定义当前类型建立索引和查询数据的时候使用的查询分析器。
  tokenizer指定分词器
  filter指定过滤器






















  
  positionIncrementGap:可选属性,定义在同一个文档中此类型数据的空白间隔,避免短语匹配错误。
positionIncrementGap=100  只对 multiValue = true 的fieldType有意义。
  
StrField类型不被分析,而是被逐字地索引/存储
  solr.TextField 允许用户通过分析器来定制索引和查询,分析器包括一个分词器(tokenizer)和多个过滤器(filter)
  
  2.field节点
  field节点指定建立索引和查询数据的字段。
  name代表数据字段名称
  type代表数据类型,也就是之前定义的fieldtype
  indexed代表是否被索引
  stored代表是否被存储
  multiValued是否有多个值,如果字段可能有多个值,尽可能设为true
  _version节点和root节点是必须保留的,不能删除













   3.copyfield节点
  通过这个节点,可以把一个字段的值复制到另一个字段中,也可以把多个字段的值同时复制到另一个字段中,这样搜索的时候都可以根据一个字段来进行搜索。










  4.dynamicField节点
  dynamicField表示动态字段,可以动态定义一个字段,只要符合规则的字段都可以





  
  
   5.其他节点
  uniquekey节点是文档的唯一标示,相当于主键,每次更新,删除的时候都根据这个字段来进行操作。必须填写      



ProductCode
  
  defaultSearchField指定搜索的时候默认搜索字段的值,



  text
  
  solrQueryParser指定搜索时多个词之间的关系,可以是or,and两种  




  
  6.性能优化
  
         将所有只用于搜索的,而不需要作为结果的field(特别是一些比较大的field)的stored设置为false
         将不需要被用于搜索的,而只是作为结果返回的field的indexed设置为false, 删除所有不必要的copyField声明
         为了索引字段的最小化和搜索的效率,将所有的 text fields的index都设置成false,然后使用copyField将他们都复制到一个总的 text field上,
  然后进行搜索。

运维网声明 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-87883-1-1.html 上篇帖子: solr之定时增量索引实现 下篇帖子: 利用SOLR搭建企业搜索平台之十二 (字段增加权重)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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