Solr字段类型fieldtype的定义
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Solr字段类型fieldtype的定义
摘要: 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"/>
1
2
上⾯的这个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。