Solr字段类型field type的定义
生活随笔
收集整理的這篇文章主要介紹了
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"/>- 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。
???????????轉載于:https://www.cnblogs.com/cuihongyu3503319/p/9448097.html
總結
以上是生活随笔為你收集整理的Solr字段类型field type的定义的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据库 - mysql内置功能
- 下一篇: python 函数部分