去重複
如果您的索引中存在重複或近乎重複的文件,則可能值得實作去重複。
使用低碰撞或模糊雜湊演算法,可以有效地防止重複或近乎重複的文件進入索引,或使用簽章/指紋標記文件以進行重複欄位摺疊。Solr 本機支援這種類型的去重複技術,透過 Signature
類別,並允許輕鬆新增新的雜湊/簽章實作。簽章可以透過幾種方式實作
-
MD5Signature:用於精確重複偵測的 128 位元雜湊。
-
Lookup3Signature:用於精確重複偵測的 64 位元雜湊。這比 MD5 快得多,而且索引也較小。
-
TextProfileSignature:來自 Apache Nutch 的模糊雜湊實作,用於近乎重複偵測。它是可調整的,但最適用於較長的文字。
稍後可以新增其他更複雜的模糊/近雜湊演算法。
新增去重複程序將會變更 當然, |
設定選項
在 Solr 中,有兩個地方可以設定去重複:在 solrconfig.xml
中和在結構描述中。
在 solrconfig.xml 中
必須在 solrconfig.xml
中將 SignatureUpdateProcessorFactory
註冊為更新請求處理器鏈的一部分,如此範例所示
<updateRequestProcessorChain default="true">
<processor class="solr.LogUpdateProcessorFactory" />
<processor class="solr.processor.SignatureUpdateProcessorFactory">
<str name="signatureField">id</str>
<str name="fields">name,features,cat</str>
<str name="signatureClass">solr.processor.Lookup3Signature</str>
</processor>
<processor class="solr.RunUpdateProcessorFactory" />
</updateRequestProcessorChain>
SignatureUpdateProcessorFactory
採用數個屬性
signatureClass
-
選用
預設值:
org.apache.solr.update.processor.Lookup3Signature
用於產生簽章雜湊的簽章實作。
必須指定實作的完整類別路徑。上述說明了可用的選項,要使用的相關類別路徑為
-
org.apache.solr.update.processor.Lookup3Signature
-
org.apache.solr.update.processor.MD5Signature
-
org.apache.solr.update.process.TextProfileSignature
-
fields
-
選用
預設值:所有欄位
用於產生雜湊簽章的欄位,以逗號分隔的清單表示。依預設,將會使用文件上的所有欄位。
signatureField
-
選用
預設值:
signatureField
用於存放指紋/簽名的欄位名稱。此欄位應在您的綱要中定義。
已啟用
-
選用
預設值:
true
設為
false
以停用重複資料刪除處理。 覆寫重複項目
-
選用
預設值:
true
如果為
true
,當存在與此簽名匹配的文件時,將會覆寫該文件。如果您使用overwriteDupes=true
,則您的綱要中signatureField
必須為indexed="true"
。
在 SolrCloud 中使用
SignatureUpdateProcessorFactory 在 SolrCloud 中使用
(使用任何其他 |