重複排除
重複またはほぼ重複するドキュメントがインデックス内で問題になる場合は、重複排除の実装を検討する価値があるかもしれません。
重複またはほぼ重複するドキュメントがインデックスに入るのを防ぐこと、または重複フィールドの折り畳みのために署名/フィンガープリントでドキュメントにタグ付けすることは、低衝突またはファジーハッシュアルゴリズムで効率的に実現できます。Solr は、Signature
クラスを介してこのタイプの重複排除技術をネイティブにサポートしており、新しいハッシュ/署名の実装を簡単に追加できます。署名はいくつかの方法で実装できます。
-
MD5Signature: 正確な重複検出に使用される 128 ビットハッシュ。
-
Lookup3Signature: 正確な重複検出に使用される 64 ビットハッシュ。これは MD5 よりもはるかに高速で、インデックスを作成するのにサイズが小さくなります。
-
TextProfileSignature: ほぼ重複検出のための Apache Nutch のファジーハッシュ実装。調整可能ですが、長いテキストで最適に機能します。
ファジー/ニアハッシュ用の他の、より高度なアルゴリズムを後で追加できます。
重複排除プロセスを追加すると、 もちろん、 |
設定オプション
Solr で重複排除を設定するには、solrconfig.xml
と スキーマの 2 か所があります。
solrconfig.xml 内
SignatureUpdateProcessorFactory
は、この例のように、更新リクエストプロセッサチェーンの一部として solrconfig.xml
に登録する必要があります。
<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
署名ハッシュを生成するための Signature 実装。
実装の完全なクラスパスを指定する必要があります。利用可能なオプションについては上記で説明されており、関連するクラスパスは次のとおりです。
-
org.apache.solr.update.processor.Lookup3Signature
-
org.apache.solr.update.processor.MD5Signature
-
org.apache.solr.update.process.TextProfileSignature
-
fields
-
オプション
デフォルト: すべてのフィールド
署名ハッシュを生成するために使用するフィールドをコンマ区切りリストで指定します。デフォルトでは、ドキュメントのすべてのフィールドが使用されます。
signatureField
-
オプション
デフォルト:
signatureField
フィンガープリント/署名を保持するために使用するフィールドの名前。フィールドはスキーマで定義する必要があります。
enabled
-
オプション
デフォルト:
true
重複排除処理を無効にする場合は、
false
に設定します。 overwriteDupes
-
オプション
デフォルト:
true
true
の場合、この署名に一致するドキュメントがすでに存在する場合は、上書きされます。overwriteDupes=true
を使用している場合は、スキーマでsignatureField
がindexed="true"
である必要があります。
SolrCloud での
SignatureUpdateProcessorFactory の使用SolrCloud で
( |