99re热视频这里只精品,久久久天堂国产精品女人,国产av一区二区三区,久久久精品成人免费看片,99久久精品免费看国产一区二区三区

Solr字段類型的定義和屬性

2022-03-02 09:35 更新

Solr 字段類型定義在對文檔進行索引或向索引發(fā)送查詢時將在字段上發(fā)生的分析。

字段類型定義可以包括以下四種類型的信息:

  • 字段類型的名稱(必填)。
  • 一個實現(xiàn)類的名字(必填)。
  • 如果一個字段的類型是 TextField,則為字段類型的字段分析說明。
  • 字段類型屬性取決于實現(xiàn)類,一些屬性可能是強制性的。

schema.xml 中的字段類型定義

字段類型在 schema.xml 中定義。每個字段類型在 fieldType 元素之間定義。他們可以有選擇地分組在一個 types 元素中。下面是一個名為 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>

關(guān)于上述代碼的提示信息:

  1. 上述實例的第一行包含字段類型名稱、text_general 和實現(xiàn)類的名稱 solr.TextField。
  2. 定義的其余部分是關(guān)于字段分析,在理解分析器、分詞和過濾器中描述。

實現(xiàn)類負責確保字段被正確處理。在 schema.xml 類名中,字符串 solr 是 org.apache.solr.schema 或者 org.apache.solr.analysis 的簡寫形式。所以,solr.TextField 是真的 org.apache.solr.schema.TextField。

字段類型屬性

字段類型 class 決定了字段類型的大部分行為,但也可以定義可選的屬性。例如,date 字段類型的以下定義就定義了兩個屬性,sortMissingLast 和 omitNorms。

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

可以為給定字段類型指定的屬性分為三個主要類別:

  • 特定于字段類型的類的屬性。
  • 常規(guī)屬性 Solr 支持任何字段類型。
  • 字段默認屬性可以在字段類型上指定,這些字段將由使用此類型而不是默認行為的字段繼承。

字段的一般屬性

這些是字段的一般屬性:

name

fieldType 的名稱。該值用于字段定義中的“類型”屬性中。強烈建議名稱僅包含字母數(shù)字或下劃線字符,不能以數(shù)字開頭。目前這不是嚴格執(zhí)行的。

class

用于存儲和索引此類型數(shù)據(jù)的類名。請注意,您可以用 “solr” 作為前綴包含的類名稱。Solr 會自動找出哪些軟件包可以搜索這個類,這樣solr.TextField就可以工作了。

如果您使用的是第三方類,則可能需要具有完全限定的類名稱。solr.TextField是的完全限定等效項是org.apache.solr.schema.TextField。

positionIncrementGap

對于多值字段,指定多個值之間的距離,這可以防止虛假詞組匹配。

autoGeneratePhraseQueries

對于文本字段。如果為true,Solr 將自動生成相鄰詞語的短語查詢。如果為false,則術(shù)語必須用雙引號括起來以作為短語處理。

enableGraphQueries

對于文本字段,查詢時使用sow=false(這是sow參數(shù)的默認值)。對具有查詢分析器的字段類型使用 true (默認值),包括具有圖形感知的篩選器,例如同義詞圖形過濾器和字符分隔符圖形過濾器。

對于既有查詢分析器使用的字段類型,使用 false 包括在缺少某些標記 (例如,Shingle Filter) 時可以匹配文檔的篩選器。

docValuesFormat

定義用于此類型的字段的自定義 DocValuesFormat。這要求具有架構(gòu)感知的編解碼器(例如,SchemaCodecFactory 已在 solrconfig.xml 中配置)。

postingsFormat

定義用于此類型的字段的自定義 PostingsFormat。這要求具有架構(gòu)感知的編解碼器(例如,SchemaCodecFactory 已在 solrconfig.xml 中配置)。

Tip:只有默認編解碼器支持 Lucene 索引反向兼容。如果您選擇在 schema.xml 中自定義 postingsFormat 或 docValuesFormat,則升級到未來版本的 Solr 可能會要求您切換回默認編解碼器,并在升級之前優(yōu)化索引以將其重寫為默認編解碼器,或升級后從頭開始重新構(gòu)建整個索引。

字段默認屬性

這些屬性可以在字段類型中指定,也可以在單個字段中指定,以覆蓋字段類型提供的值。

每個屬性的默認值取決于底層的 FieldType 類,這又可能取決于的  <schema/> 的 version 屬性。下面的表格包含了 FieldTypeSolr 提供的大多數(shù)實現(xiàn)的默認值,假設(shè) schema.xml 聲明 version="1.6"。

屬性 描述 隱含默認值

索引(indexed

如果為 true,則可以在查詢中使用該字段的值來檢索匹配的文檔。

true 或者 false

true

存儲(stored)

如果為 true,則字段的實際值可以通過查詢來檢索。

true 或者 false

true

docValues

如果為 true,則該字段的值將被放入一個面向列的 DocValues 結(jié)構(gòu)中。

true 或者 false

false

sortMissingFirst 

sortMissingLast

排序字段不存在時控制文檔的位置。

true 或者 false

false

多值(multiValued

如果為 true,則表示單個文檔可能包含此字段類型的多個值。

true 或者 false

false

omitNorms

如果為 true,則省略與該字段關(guān)聯(lián)的規(guī)范(這將禁用該字段的長度規(guī)范化,并保存一些內(nèi)存)。對于所有基元 (non-analyzed) 字段類型(如 int、float、data、bool 和 string)的默認值均為true。只有全文字段或字段需要規(guī)范。

true 或者 false

*

omitTermFreqAndPositions

如果為 true,則省略該字段過帳的術(shù)語頻率、位置和有效載荷。這可以提高不需要這些信息的字段的性能。這也減少了索引所需的存儲空間。依賴于使用此選項在字段上發(fā)布的位置的查詢將悄然無法找到文檔。對于不是文本字段的所有字段類型,此屬性默認為 true。

true 或者 false

*

omitPositions

類似于 omitTermFreqAndPositions 但保留了詞頻信息。

true 或者 false

*

termVectors termPositions termOffsets termPayloads

這些選項指示 Solr 維護每個文檔的全部向量矢量,可選地包括這些向量中每個詞條出現(xiàn)的位置,偏移和有效載荷信息。這些可以用來加速突出顯示和其他輔助功能,但在索引大小方面會帶來相當大的成本。對于 Solr 的典型用途,它們不是必需的。

true 或者 false

false

必須的(required

指示 Solr 拒絕添加沒有此字段值的文檔的任何嘗試。此屬性默認為 false。

true 或者 false

false

useDocValuesAsStored

如果該字段啟用了 docValues,將其設(shè)置為 true 將允許 stored=false 在 fl 參數(shù)中匹配“*”時將該字段作為存儲字段返回(即使有)。

true 或者 false

true

大(large

如果實際值<512KB,大字段總是被延遲加載,并且只占用文檔高速緩存中的空間。這個選項需要 stored="true" 和multiValued="false"。它的目的是為了可能有非常大的值,以便他們不被緩存在內(nèi)存中的字段。

true 或者 false

false

字段類型相似性

字段類型可以選擇指定一個 <similarity/>,在對引用此類型的字段進行評分的文檔時將使用它,只要集合的 "全局" 相似性允許這樣做。

默認情況下,任何沒有定義相似性的字段類型都會使用 BM25Similarity。有關(guān)更多詳細信息以及配置全局和每類相似性的示例,請參閱其他架構(gòu)元素。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號