同じ Solr スキーマでテキスト ファイル、Web サイト、およびデータベースのインデックスを作成するにはどうすればよいですか? 3 つのソースはすべて要件であり、その方法を理解しようとしています。いくつかの例を実行しましたが、それらは互いに分離しているため正常に動作しています。ユーザーはこれら 3 つのデータ ソースすべてを検索するため、すべてを 1 つのスキーマにする必要があります。
どのように進めればよいですか?
同じ Solr スキーマでテキスト ファイル、Web サイト、およびデータベースのインデックスを作成するにはどうすればよいですか? 3 つのソースはすべて要件であり、その方法を理解しようとしています。いくつかの例を実行しましたが、それらは互いに分離しているため正常に動作しています。ユーザーはこれら 3 つのデータ ソースすべてを検索するため、すべてを 1 つのスキーマにする必要があります。
どのように進めればよいですか?
コンテンツ ソースごとにいくつかのメモを作成する必要があります。
それが完了したら、検索可能にするメタデータを決定します。コンテンツ ソースの 1 つだけに固有のもの (Web ページの作成者、DB 行の任意のフィールドなど) もあれば、すべてのソース (一意の ID、タイトル、テキスト コンテンツなど) に存在するものもあります。 )。必要に応じて、コピー フィールドを使用してフィールドを統合します。
メタデータはプロジェクトごとに大きく異なりますが、そうです。更新日、ファイル名、およびテキスト ファイルから解析できる構造化データなどは、関連性の向上に確実に役立ちます。さらに、ケースバイケースで大きく異なります。おそらく、ファイル パスは、メタデータとして使用できる (おそらく非公式の) 分類法を示唆しています。ファイル名には、メタデータ自体 (年、キーワード、製品名など) が含まれている可能性があります。
結果を表示するときは、ソースごとに異なるフィールドを使用できるように準備してください。結果タイルを作成するsource
という点では、フィールドは大いに役立ちます。最も使用頻度の高いファセットになる可能性もあります。
コピーフィールドを広範囲に使用する代替の (そしておそらく推奨される) アプローチは、DisMax/EDisMaxリクエストハンドラーを使用して、複数のフィールドでの検索を容易にすることです。
コピー フィールドと (e)dismax を組み合わせて使用することを検討してください。たとえば、保存する必要のないキャッチオール テキスト フィールドにすべてのフィールドをコピーし、それを検索に含めますが、ブースト値は低く、重み付けの高いフィールド (タイトル、見出し、キーワードなど) を含めます。 、またはファイル名) を検索で使用します。dismax で微調整するパラメーターはたくさんありますが、努力する価値は間違いなくあります。