重複排除
重複またはほぼ重複するドキュメントがインデックス内で問題になる場合は、重複排除の実装を検討する価値があるかもしれません。
重複またはほぼ重複するドキュメントがインデックスに入るのを防ぐこと、または重複フィールドの折り畳みのために署名/フィンガープリントでドキュメントにタグ付けすることは、低衝突またはファジーハッシュアルゴリズムで効率的に実現できます。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-
オプション
デフォルト:
truetrueの場合、この署名に一致するドキュメントがすでに存在する場合は、上書きされます。overwriteDupes=trueを使用している場合は、スキーマでsignatureFieldがindexed="true"である必要があります。
|
SolrCloud での
SignatureUpdateProcessorFactory の使用SolrCloud で
( |