Solr字段类型field type的定义

摘要: Solr的字段类型定义了Solr如何解析字段数据并将数据检索出来,了解Solr的字段类型定义有助于更好的配置与使用Solr。

字段类型的定义

字段类型的定义主要包含如下四个方面的信息:

  • 名称
  • 实现的类名
  • 如果field type 是TextField,则可以指定字段解析器
  • 字段类型属性

schema.xml中定义的字段类型

字段类型在schema.xml中指定,每一个字段类型被定义在fieldType标签之间,下面这个例子是一个text_general的字段类型:

<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
  <analyzer type="index">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
    <!-- in this example, we will only use synonyms at query time
    <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
    -->
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
    <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
</fieldType>

第一行包含了字段类型的名字“text_general”,是由类”solr.TextField”实现的,这个solr指的是org.apache.solr.schema或者org.apache.solr.analysis,也就是说solr.TextField指的是org.apache.solr.schema.TextField

字段类型属性

字段类型声明中,class已经基本确定了字段类型的行为,当然还可以通过一些属性参数来增加或改变某些行为。

<fieldType name="date" class="solr.TrieDateField"
           sortMissingLast="true" omitNorms="true"/>

上面的这个date类型有两个额外的属性”sortMissinglast”和”omitNorms”。
所有的属性可以归结为一下三种形式:

  • 字段类型的class
  • 通用属性,支持所有的字段类型
  • 默认属性,一些字段类型的属性是特有的,可以通过指定来修改默认值

通用属性

属性说明
name用于定义field的”type”
class定义了使用何种方式处理该类型数据
positionLncrementGap对于多值字段,指定多值的间距整数
autoGeneratePhraseQueries适用于text字段,Solr是否自动生成短语查询布尔值
docValuesFormat对于一个字段类型使用定制的DocValuesFormat
postingsFormat对于一个字段类型使用定制的PostingsFormat

默认属性

属性说明默认值
indexed字段值是否用于查询布尔值true
stored字段真实值是否可以被查询到布尔值true
docValues字段值是否列式存储布尔值false
sortMissingFirst sortMissingLast没有指定排序规则时,控制文档排序布尔值false
multiValues字段是否多值布尔值false
omitNorms是否忽略不适用该字段的规范布尔值true
omitTermFreqAndPositions是否忽略词频、位置等布尔值true
omitpositions类似omitTermFreqAndPositions但保留词频布尔值true
termVectors是否保留term vectors布尔值false
termPositions是否保留term position布尔值false
termOffsets是否保留term offset布尔值false
termPayloads是否保留term payload布尔值false
required是否拒绝空值的字段布尔值false
useDocValuesAsStored如果字段是docValues,设置为true将允许字段在fl参数匹配“*”时返回数据布尔值false

字段类型相似性

字段类型可以指定一个similarity,用于对全局的相似性文档进行评分。默认情况下,不指定相似性的话,使用的是BM25Similarity

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值