99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

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

2018-11-17 15:28 更新

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

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

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

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

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

配置重復(fù)數(shù)據(jù)刪除選項(xiàng)

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

在 solrconfig.xml 中

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

<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 需要以下幾個(gè)屬性:

signatureClass

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

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

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

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

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

fields

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

signatureField

用于保存指紋/簽名的字段的名稱(chēng)。該字段應(yīng)該被定義schema.xml。默認(rèn)是signatureField

enabled

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

overwriteDupes

如果為 true,則默認(rèn)情況下,當(dāng)文檔已經(jīng)與此簽名匹配時(shí),它將被覆蓋。

在 schema.xml 中

如果您使用單獨(dú)的字段來(lái)存儲(chǔ)簽名,則必須將其編入索引:

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

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

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

上述例子假設(shè)你已經(jīng)定義了請(qǐng)求處理程序的其他部分。

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

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

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)