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

Solr模式元素

2018-11-11 17:31 更新

本節(jié)介紹在前面幾節(jié)中未提及的 schema.xml 的其他幾個(gè)重要的模式元素。

唯一的鍵

uniqueKey 元素指定哪個(gè)字段是文檔的唯一標(biāo)識(shí)符。雖然 uniqueKey 不是必需的,但它幾乎總是由您的應(yīng)用程序設(shè)計(jì)。例如,如果您將在索引中更新文檔,則應(yīng)使用 uniqueKey。

您可以通過命名來定義唯一的關(guān)鍵字段:

<uniqueKey>id</uniqueKey>

架構(gòu)默認(rèn)值和 copyFields 不能用于填充 uniqueKey 字段。在 fieldType 中 uniqueKey 不得進(jìn)行分析。您可以使用 UUIDUpdateProcessorFactory 自動(dòng)生成具有 uniqueKey的值。

此外,如果 uniqueKey 字段被使用,則該操作將失敗,但是是多值的(或者從 fieldtype 繼承了多值性)。但是,只要適當(dāng)?shù)厥褂迷撟侄?,uniqueKey 將繼續(xù)工作。

相似

相似性是一個(gè) Lucene 類,用于在搜索中對(duì)文檔進(jìn)行評(píng)分。

每個(gè)集合都有一個(gè)“全局”相似性,默認(rèn)情況下,Solr 使用一個(gè)隱式 SchemaSimilarityFactory,它允許將單個(gè)字段類型配置一個(gè)“每類型”特定的相似性,并隱式使用 BM25Similarity 對(duì)任何字段類型沒有明確的相似性。

可以通過在 schema.xml 中的頂級(jí) <similarity/> 元素(在任何單個(gè)字段類型之外) 來重寫此默認(rèn)行為。這個(gè)相似性聲明可以直接引用具有無參數(shù)構(gòu)造函數(shù)的類的名稱,如下例中顯示 BM25Similarity:

<similarity class="solr.BM25SimilarityFactory"/>

或者引用 SimilarityFactory 實(shí)現(xiàn),它可能采用可選的初始化參數(shù)::

<similarity class="solr.DFRSimilarityFactory">
  <str name="basicModel">P</str>
  <str name="afterEffect">L</str>
  <str name="normalization">H2</str>
  <float name="c">7</float>
</similarity>

在大多數(shù)情況下, 如果您的 schema.xml 還包括字段類型特定的 <similarity/> 聲明,則指定全局級(jí)別相似性會(huì)導(dǎo)致錯(cuò)誤。一個(gè)重要的例外是,您可以明確地聲明一個(gè)  SchemaSimilarityFactory,并指定默認(rèn)行為對(duì)于所有不使用字段類型名稱 (由 defaultSimFromFieldType 指定) 聲明顯式相似性的字段類型。具有特定相似性的配置:

<similarity class="solr.SchemaSimilarityFactory">
  <str name="defaultSimFromFieldType">text_dfr</str>
</similarity>
<fieldType name="text_dfr" class="solr.TextField">
  <analyzer ... />
  <similarity class="solr.DFRSimilarityFactory">
    <str name="basicModel">I(F)</str>
    <str name="afterEffect">B</str>
    <str name="normalization">H3</str>
    <float name="mu">900</float>
  </similarity>
</fieldType>
<fieldType name="text_ib" class="solr.TextField">
  <analyzer ... />
  <similarity class="solr.IBSimilarityFactory">
    <str name="distribution">SPL</str>
    <str name="lambda">DF</str>
    <str name="normalization">H2</str>
  </similarity>
</fieldType>
<fieldType name="text_other" class="solr.TextField">
  <analyzer ... />
</fieldType>

在上面的示例中,IBSimilarityFactory(使用基于信息的模型)將用于 text_ib 類型的任何字段,而 DFRSimilarityFactory(隨機(jī)的分歧)將用于 text_dfr 類型的任何字段,以及使用類型的任何字段,該類型沒有明確指定 <similarity/>。

如果 SchemaSimilarityFactory 是通過配置 defaultSimFromFieldType 顯式聲明的,則 BM25Similarity 將隱式用作默認(rèn)值。

除了此頁面上提到的各個(gè)工廠,還有其他幾種類似的實(shí)現(xiàn),如:SweetSpotSimilarityFactory、ClassicSimilarityFactory 等等。有關(guān)詳細(xì)信息,請(qǐng)參見 Solr Javadocs 的相似工廠。


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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)