winson 发表于 2016-12-15 08:48:27

solr schema.xml 字段解析

文章地址:http://quentinxxz.iyunv.com/blog/2100628


fieldType  

< fieldType name =" string " class =" solr.StrField " sortMissingLast =" true " omitNorms =" true " />


[*]sortMissingLast和sortMissingFirst两个属性是用在可以内在使用String排序的类型上(包括:string,boolean,sint,slong,sfloat,sdouble,pdate)。
[*]sortMissingLast="true",没有该field的数据排在有该field的数据之后,而不管请求时的排序规则。
[*]sortMissingFirst="true",跟上面倒过来呗



 

 <fieldType name="tint" class="solr.TrieIntField" precisionStep="8" positionIncrementGap="0"/>


[*]   TrieField 用于范围查询,性能比普通的数值类型要快10倍。
[*]precisionStep 值越小,分割的field段就越多,索引要存储的信息也越大,同时范围查找速度也就越快。




[*]positionIncrementGap:可选属性,定义在同一个文档中此类型数据的空白间隔,避免短语匹配错误。 和multiValued
一起使用,设置多个值之间的虚拟空白的数量 

关于positionIncrementGap的详细说明,参考文章http://rockiee281.blog.163.com/blog/static/19385222920127225619919/



 

    <fieldType name="pint" class="solr.IntField"/>
    <fieldType name="plong" class="solr.LongField"/>
    <fieldType name="pfloat" class="solr.FloatField"/>
    <fieldType name="pdouble" class="solr.DoubleField"/>
    <fieldType name="pdate" class="solr.DateField" sortMissingLast="true"/>


[*]   这些数值类型,用于对已存在的索引的兼容(由lucence或早期版本的solr创建),暂不支持范围查找



 

    <!-- A text field that only splits on whitespace for exact matching of words -->
    <fieldType name="text_ws" class="solr.TextField" positionIncrementGap="100">
      <analyzer>
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
      </analyzer>
    </fieldType>

         The optional positionIncrementGap puts space between multiple fields of this type on the same document, with the purpose of preventing false phrase
         matching across fields.




 


 <fieldType name="random" class="solr.RandomSortField" indexed="true" />


[*]RandomSortField不会被存储,也不用于搜索任何数据,用于生成伪随机排序的docs。




 

Filed

     官方建议不要修改id 与_version_  filed。

    当下列可选属性被使用时,Lucene的term Vector的存储会被触发

 


[*]
termVectors=true|false

[*]
termPositions=true|false

[*]
termOffsets=true|false

这些选项用于高亮以及其他配套功能的加速,但是会对索引的大小造成额外开销。

 

杂项

 <uniqueKey> 






[*]solr并不强制要求schema有一个唯一字段,但schema都基都会设置一个唯一字段。官方建议不要修改这个字段。‘
[*]如果你在solrconfig.xml中启用了QueryElevationComponent 。就可以要求schema使用一个StrFiled类型的唯一字段。



 

 <defaultSearchField>



[*]当搜索fied没有被显示指定的时候,solr指该字段为默认搜索字段。 



 

<solrQueryParser defaultOperator="AND|OR"/>


[*]默认OR



 

<copyField> 


[*]你必须保证datatye 是兼容的



 

<similarity class="org.apache.lucene.search.similarities.DefaultSimilarity"/>




[*]指定评分器
页: [1]
查看完整版本: solr schema.xml 字段解析