W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
本節(jié)介紹在前面幾節(jié)中未提及的 schema.xml 的其他幾個重要的模式元素。
uniqueKey 元素指定哪個字段是文檔的唯一標識符。雖然 uniqueKey 不是必需的,但它幾乎總是由您的應用程序設(shè)計。例如,如果您將在索引中更新文檔,則應使用 uniqueKey。
您可以通過命名來定義唯一的關(guān)鍵字段:
<uniqueKey>id</uniqueKey>
架構(gòu)默認值和 copyFields 不能用于填充 uniqueKey 字段。在 fieldType 中 uniqueKey 不得進行分析。您可以使用 UUIDUpdateProcessorFactory 自動生成具有 uniqueKey的值。
此外,如果 uniqueKey 字段被使用,則該操作將失敗,但是是多值的(或者從 fieldtype 繼承了多值性)。但是,只要適當?shù)厥褂迷撟侄?,uniqueKey 將繼續(xù)工作。
相似性是一個 Lucene 類,用于在搜索中對文檔進行評分。
每個集合都有一個“全局”相似性,默認情況下,Solr 使用一個隱式 SchemaSimilarityFactory,它允許將單個字段類型配置一個“每類型”特定的相似性,并隱式使用 BM25Similarity 對任何字段類型沒有明確的相似性。
可以通過在 schema.xml 中的頂級 <similarity/> 元素(在任何單個字段類型之外) 來重寫此默認行為。這個相似性聲明可以直接引用具有無參數(shù)構(gòu)造函數(shù)的類的名稱,如下例中顯示 BM25Similarity:
<similarity class="solr.BM25SimilarityFactory"/>
或者引用 SimilarityFactory 實現(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/> 聲明,則指定全局級別相似性會導致錯誤。一個重要的例外是,您可以明確地聲明一個 SchemaSimilarityFactory,并指定默認行為對于所有不使用字段類型名稱 (由 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(隨機的分歧)將用于 text_dfr 類型的任何字段,以及使用類型的任何字段,該類型沒有明確指定 <similarity/>。
如果 SchemaSimilarityFactory 是通過配置 defaultSimFromFieldType 顯式聲明的,則 BM25Similarity 將隱式用作默認值。
除了此頁面上提到的各個工廠,還有其他幾種類似的實現(xiàn),如:SweetSpotSimilarityFactory、ClassicSimilarityFactory 等等。有關(guān)詳細信息,請參見 Solr Javadocs 的相似工廠。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: