国产gaysexchina男同gay,japanrcep老熟妇乱子伦视频,吃奶呻吟打开双腿做受动态图,成人色网站,国产av一区二区三区最新精品

Solr重復數(shù)據(jù)刪除

2018-11-17 15:28 更新

如果索引中存在重復或接近重復的文檔,則可能需要執(zhí)行重復數(shù)據(jù)刪除。

防止重復或接近重復的文檔進入索引或用簽名/指紋標記具有重復字段折疊的文檔可以用低沖突或模糊哈希算法有效地實現(xiàn)。Solr 通過 Signature 類本地支持這種類型的重復數(shù)據(jù)刪除技術,并允許輕松添加新的哈希/簽名實現(xiàn)。簽名可以通過幾種方式實現(xiàn):

  • MD5Signature:用于精確重復檢測的 128 位哈希。
  • Lookup3Signature:用于精確重復檢測的 64 位哈希。這比 MD5 快得多,索引也小一些。
  • TextProfileSignature:來自 Apache Nutch 的模糊哈希實現(xiàn),用于接近重復的檢測。這是可調的,但在較長的文本上效果最好。

其他更復雜的模糊/近似哈希算法可以稍后添加。

注意:在重復數(shù)據(jù)刪除過程中添加將更改 allowDups 設置,使其適用于更新術語 (在本例中為 signatureField),而不是唯一的字段術語。當然,signatureField 可以是唯一的字段,但通常您希望唯一字段是獨一無二的。添加文檔時,將自動生成簽名并將其附加到指定 signatureField 中的文檔。

配置重復數(shù)據(jù)刪除選項

Solr 中有兩個地方可以配置重復數(shù)據(jù)刪除:in solrconfig.xml 和 in schema.xml。

在 solrconfig.xml 中

SignatureUpdateProcessorFactory 必須被登記在 solrconfig.xml 中作為更新請求處理器鏈的一部分,如在這個例子中:

<updateRequestProcessorChain name="dedupe">
  <processor class="solr.processor.SignatureUpdateProcessorFactory">
    <bool name="enabled">true</bool>
    <str name="signatureField">id</str>
    <bool name="overwriteDupes">false</bool>
    <str name="fields">name,features,cat</str>
    <str name="signatureClass">solr.processor.Lookup3Signature</str>
  </processor>
  <processor class="solr.LogUpdateProcessorFactory" />
  <processor class="solr.RunUpdateProcessorFactory" />
</updateRequestProcessorChain>

這 SignatureUpdateProcessorFactory 需要以下幾個屬性:

signatureClass

用于生成簽名哈希的簽名實現(xiàn)。默認是org.apache.solr.update.processor.Lookup3Signature。

必須指定實現(xiàn)的完整類路徑。上面介紹了可用的選項,要使用的關聯(lián)類路徑是:

  • org.apache.solr.update.processor.Lookup3Signature

  • org.apache.solr.update.processor.MD5Signature

  • org.apache.solr.update.process.TextProfileSignature

fields

用于在逗號分隔列表中生成簽名哈希的字段。默認情況下,將使用文檔上的所有字段。

signatureField

用于保存指紋/簽名的字段的名稱。該字段應該被定義schema.xml。默認是signatureField。

enabled

設置為 false 可禁用重復數(shù)據(jù)刪除處理。默認值是 true。

overwriteDupes

如果為 true,則默認情況下,當文檔已經與此簽名匹配時,它將被覆蓋。

在 schema.xml 中

如果您使用單獨的字段來存儲簽名,則必須將其編入索引:

<field name="signatureField" type="string" stored="true" indexed="true" multiValued="false" />

請確保更改您的更新處理程序以使用定義的鏈,如下所示:

<requestHandler name="/update" class="solr.UpdateRequestHandler" >
  <lst name="defaults">
    <str name="update.chain">dedupe</str>
  </lst>
...
</requestHandler>

上述例子假設你已經定義了請求處理程序的其他部分。

還可以使用參數(shù) update.chain=dedupe 為每個請求指定更新處理器。

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號