zoukankan      html  css  js  c++  java
  • solr配置-Schema.xml

    可参考配置:http://wiki.apache.org/solr/SchemaXml(基本上文档上面讲的已经很详细了)

    先来看一下Schema.xml都有什么配置

    1,uniqueKey

    2,n多name不一样的fieldType

    3,各种field :field,dynamicField,copyField

    4,默认被注释掉的defaultSearchField,solrQueryParser,Similarity

    下面来看一下具体都什么意思:

    1,uniqueKey:文档的唯一标识、唯一键,这里配置的是下面出现的field 一般都叫id,在更新、删除的时都会用到

    <uniqueKey>id</uniqueKey>

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

    属性说明:

    name   # 标识,与Field type对应
    class    #对应solr已定义的type Class
    sortMissingLast    #设置成true没有该field的数据排在有该field的数据之后,而不管请求时的排序规则, 默认是false。
    sortMissingFirst    #反之,默认是false
    analyzer    #字段类型指定的分词器
    tokenizer #分词器类
    type #当前分词用用于的操作.index代表生成索引时使用的分词器query代码在查询时使用的分词器 filter #分词后使用的过滤器,调用顺序和配置相同

    3,Fields 就是定义那些你要在搜索结果中展示的字段,即在doucument中使用,用于搜索或者只是展示

    field:     普通的字段设置

     <field name="sn"        type="string" indexed="true" stored="true" />  

    dynamicField: 动态的字段设置,用于后期自定义字段,*号通配符.例如: test_i就是int类型的动态字段.

     <dynamicField name="*_i"  type="integer"  indexed="true"  stored="true"/>

    copyField:  一般用于检索时用的字段,这样就只对这一个字段进行索引分词,copyField的dest字段如果有多个source一定要设置multiValued=true,否则会报错的

     <copyField source="body" dest="teaser" maxChars="300"/>

    fields属性说明:

    name    #字段类型名
    class    #java类名
    indexed    #默认true。 是否被索引,说明这个数据应被搜索和排序,一般与stored反之。
    stored    #默认true。是否被存储,说明这个字段被包含在搜索结果中,一般与indexed反之。
    omitNorms    #字段的长度不影响得分和在索引时不做boost时,设置它为true。一般文本字段不设置为true。
    termVectors    #如果字段被用来做more like this 和highlight的特性时应设置为true。
    compressed    #字段是压缩的。这可能导致索引和搜索变慢,但会减少存储空间,只有StrField和TextField是可以压缩,这通常适合字段的长度超过200个字符。
    multiValued    #是否有多个值。
    positionIncrementGap    #和multiValued一起使用,设置多个值之间空白的数量
    

    4,  defaultSearchField:默认搜索属性,如q=text就是默认的搜索text字段

    <defaultSearchField>text</defaultSearchField>

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

    <solrQueryParser defaultOperator="OR"/>

        Similarity:自定义评分器,class是继承 DefaultSimilarity的子类,或者实现评分器接口的类,

                    下面的参数str 应该是可配置名称为paramkey,值为param value的参数吧

    <similarity class="com.example.solr.CustomSimilarityFactory">
           <str name="paramkey">param value</str>
    </similarity>
  • 相关阅读:
    MySql优化-你的SQL命中索引了吗
    php根据两点经纬度算距离
    二维数组排序
    php 求对数
    socket,websocket,socketio之间的关系
    PHP获取两个时间戳间的所有日期
    通过动画理解Raft公式算法
    Fabric创建通道、组织加入通道
    查看进程线程的方法
    Fabric添加节点
  • 原文地址:https://www.cnblogs.com/china2k/p/4080228.html
Copyright © 2011-2022 走看看