2016-05-20 1 views
1

私は、mysql製品データベースに基づいてsolrコアを構築しました。コアは正常に動作し、製品を検索できます。私が直面している問題は、検索用語が説明に複数回存在する場合、その用語がその中に一度し​​か含まれていない製品と比較して、その製品はより関連性が高いと考えられるということです。重複を考慮しないようソナーに伝える方法はありますか?フィールド内の重複する用語を削除するためにSolrを正しく設定する方法

私はUniqFieldsUpdateProcessorFactoryについて読んだことがありますが、正しく構成できていないため、それが問題を解決する適切な方法であるかどうかはわかりません。

私は私のsolrconfig.xml

<processor class="solr.UniqFieldsUpdateProcessorFactory"> 
    <str name="fieldRegex">.*_uniq</str> 
</processor> 

にこれを追加した私も(どんな本がある場合)、この設定は、実際にどのような影響仕事やないとされているかどうかを確認する方法がわからないです。

どのように進むべきかについての指針は、本当に高く評価されます。

答えて

1

問題はインデックス作成か関連性問題ですか?通常、ある用語がフィールド内で複数回現れると、文書ISが他のものよりも関連性が高いと考えられるためです。

このフィールドを使用しない場合は、omitTermFreqAndPositions flag enableでフィールドを再定義することができます。これは、特定のフィールドに用語が何回表示されたかを考慮しません。

この変更後、すべてのコンテンツを再インデックスする必要があります。

2

スキーマschema.xmlのインデックス部分にsolr.RemoveDuplicatesTokenFilterFactoryフィルタを追加して、インデックス作成中に重複を削除できます。使用例はuserwikisolrwikiです。これには再索引付けが必要です。

アップデートプロセッサチェーンにsolr.UniqFieldsUpdateProcessorFactoryを使用して、アトミック更新時に重複を追加しないようにします。ドキュメントのアップロード中にその動作を試みたことはありません。原子の更新については、Yonikによってlinkに説明されています。

<processor class="solr.UniqFieldsUpdateProcessorFactory"> 
    <str name="fieldRegex">[NAME OF MY FIELD IN SCHEMA.XML]</str> 
</processor> 

重複レコードのサンプルデータを使用してローカルセットアップでテストできます。

関連する問題