1.4.2 solr字段類型--(1.4.2.1)字段類型定義和字段類型屬性


1.4.2 solr字段類型

  (1.4.2.1) 字段類型定義和字段類型屬性.

  (1.4.2.2) solr附帶的字段類型

  (1.4.2.3) 使用貨幣和匯率

  (1.4.2.4) 使用Dates(日期)

  (1.4.2.5) 使用枚舉字段

  (1.4.2.6) 使用外部文件和程序

  (1.4.2.7) 字段屬性使用案例

 

 

字段類型定義和字段類型屬性

  字段類型元素fieldType包含4個信息的類型:name,class-實現類的名稱,analyzer-用於字段類型的分析,字段屬性Field.

schema.xml中定義字段類型

  字段類型定義在schema.xml中的types元素下,每個字段類型都在filedType元素之間定義,下面是一個 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" enablePositionIncrements="true" />
        <filter class="solr.LowerCaseFilterFactory" />
    </analyzer>
    <analyzer type="query">
        <tokenizer class="solr.StandardTokenizerFactory" />
        <filter class="solr.StopFilterFactory" ignoreCase="true"
            words="stopwords.txt" enablePositionIncrements="true" />
        <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt"
            ignoreCase="true" expand="true" />
        <filter class="solr.LowerCaseFilterFactory" />
    </analyzer>
</fieldType>

 

  上面例子中的第一行包含了字段類型的名稱text_general,以及對應的實現類solr.TextField,剩下部分定義了字段的分析.

  實現類負責確保該字段的正確處理,在這個class名稱中,字符串solr時 org.apache.solr.schema 或者org.apache.solr.analysis的簡稱.

字段類型屬性

  字段類型的class決定了字段類型的大部分行為,但是可選的屬性也可以被定義.如下面的日期類型定義了sortMissingLast和omitNorms兩個屬性.

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

 

  這個字段類型的屬性可以分為三大類:

    指定字段類型的類.

    常規屬性-solr所有字段類型都支持的屬性.

    字段默認屬性-使用

常規屬性

屬性 描述
positionIncrementGap 對於多值字段來說,在多個值之間指定一個距離,預防假的匹配現象. integer
autoGeneratePhraseQueries

對於文本字段,如果為true,solr自動為相鄰詞語生成短語查詢,

如果false,詞語之間必須使用雙引號才被當作短語查詢.

true或false
docValuesFormat

 自定義一個DocValuesFormat,用於這個類型的字段,這就需要一個模式感知編碼解碼器(schema-aware),

如solrconfig.xml中定義的SchemaCodecFactory

 n/a
postingsFormat  自定義一個PostingsFormat,用於這個類型的字段,這就需要一個模式感知編碼解碼器(schema-aware),

如solrconfig.xml中定義的SchemaCodecFactory

 n/a

  

 

字段默認屬性

屬性 描述
indexed true:字段值可以用於查詢檢索 true or false
stored true:實際字段值在索引中存儲 true or false
docValues true,字段值將被存放在一個一行為主(面向列)docValues結構中. true or false
sortMissingFirst
sortMissingLast
如果排序字段不存在時,用於控制文檔的布局.自solr3.5起,這些應用於所有的numeric字段,tri和日期字段. true or false
multiValued true,聲明一個單獨的文檔的字段下可以包含多個值 true or false
omitNorms true,忽略此字段關聯的規范,對所有的原始字段(不分詞),默認為true.如int,float,data,bool,string.只有文本字段和需要索引時間加權的字段 需要規范(norms). true or false
omitTermFreqAndPositions true,忽略詞語的頻率,位置和位置處的有效負載.對於不需要這些信息的字段,這是一個性能提升,同樣也減少了索引的存儲空間.依賴位置的查詢,發布在使用這個選項上的字段,將無法找到匹配的文檔.這個屬性對所有的非文本字段默認為true. true or false
omitPositions 和omitTermFreqAndPositions相似,但是保存詞語的頻率信息. true or false
termVectors
termPositions
termOffsets
這些選項指示solr維護每個文檔的全部詞語的向量信息,可選擇的包含每個詞語在這些向量中出現的位置和偏移量信息.這些可以用於
加速高亮和其他輔助功能.但是在索引大小方面增加了相當一部分消耗.對於solr的標准使用來說時沒有必要的.
true or false

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM