Solr字段类型field type的定义
摘要: Solr的字段類(lèi)型定義了Solr如何解析字段數(shù)據(jù)并將數(shù)據(jù)檢索出來(lái),了解Solr的字段類(lèi)型定義有助于更好的配置與使用Solr。
字段類(lèi)型的定義
字段類(lèi)型的定義主要包含如下四個(gè)方面的信息:
- 名稱(chēng)
- 實(shí)現(xiàn)的類(lèi)名
- 如果field type 是TextField,則可以指定字段解析器
- 字段類(lèi)型屬性
在schema.xml中定義的字段類(lèi)型
字段類(lèi)型在schema.xml中指定,每一個(gè)字段類(lèi)型被定義在fieldType標(biāo)簽之間,下面這個(gè)例子是一個(gè)text_general的字段類(lèi)型:
<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>第一行包含了字段類(lèi)型的名字“text_general”,是由類(lèi)”solr.TextField”實(shí)現(xiàn)的,這個(gè)solr指的是org.apache.solr.schema或者org.apache.solr.analysis,也就是說(shuō)solr.TextField指的是org.apache.solr.schema.TextField。
字段類(lèi)型屬性
字段類(lèi)型聲明中,class已經(jīng)基本確定了字段類(lèi)型的行為,當(dāng)然還可以通過(guò)一些屬性參數(shù)來(lái)增加或改變某些行為。
<fieldType name="date" class="solr.TrieDateField" sortMissingLast="true" omitNorms="true"/>- 1
- 2
上面的這個(gè)date類(lèi)型有兩個(gè)額外的屬性”sortMissinglast”和”omitNorms”。
所有的屬性可以歸結(jié)為一下三種形式:
- 字段類(lèi)型的class
- 通用屬性,支持所有的字段類(lèi)型
- 默認(rèn)屬性,一些字段類(lèi)型的屬性是特有的,可以通過(guò)指定來(lái)修改默認(rèn)值
通用屬性
| name | 用于定義field的”type” | ? |
| class | 定義了使用何種方式處理該類(lèi)型數(shù)據(jù) | ? |
| positionLncrementGap | 對(duì)于多值字段,指定多值的間距 | 整數(shù) |
| autoGeneratePhraseQueries | 適用于text字段,Solr是否自動(dòng)生成短語(yǔ)查詢(xún) | 布爾值 |
| docValuesFormat | 對(duì)于一個(gè)字段類(lèi)型使用定制的DocValuesFormat | ? |
| postingsFormat | 對(duì)于一個(gè)字段類(lèi)型使用定制的PostingsFormat | ? |
默認(rèn)屬性
| indexed | 字段值是否用于查詢(xún) | 布爾值 | true |
| stored | 字段真實(shí)值是否可以被查詢(xún)到 | 布爾值 | true |
| docValues | 字段值是否列式存儲(chǔ) | 布爾值 | false |
| sortMissingFirst sortMissingLast | 沒(méi)有指定排序規(guī)則時(shí),控制文檔排序 | 布爾值 | false |
| multiValues | 字段是否多值 | 布爾值 | false |
| omitNorms | 是否忽略不適用該字段的規(guī)范 | 布爾值 | true |
| omitTermFreqAndPositions | 是否忽略詞頻、位置等 | 布爾值 | true |
| omitpositions | 類(lèi)似omitTermFreqAndPositions但保留詞頻 | 布爾值 | true |
| termVectors | 是否保留term vectors | 布爾值 | false |
| termPositions | 是否保留term position | 布爾值 | false |
| termOffsets | 是否保留term offset | 布爾值 | false |
| termPayloads | 是否保留term payload | 布爾值 | false |
| required | 是否拒絕空值的字段 | 布爾值 | false |
| useDocValuesAsStored | 如果字段是docValues,設(shè)置為true將允許字段在fl參數(shù)匹配“*”時(shí)返回?cái)?shù)據(jù) | 布爾值 | false |
字段類(lèi)型相似性
字段類(lèi)型可以指定一個(gè)similarity,用于對(duì)全局的相似性文檔進(jìn)行評(píng)分。默認(rèn)情況下,不指定相似性的話(huà),使用的是BM25Similarity。
???????????轉(zhuǎn)載于:https://www.cnblogs.com/cuihongyu3503319/p/9448097.html
總結(jié)
以上是生活随笔為你收集整理的Solr字段类型field type的定义的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 数据库 - mysql内置功能
- 下一篇: python 函数部分