0

商用検索エンジンの代替として Solr の評価を依頼されました。

アプリケーションには、「バケット」と呼ばれるものを使用して結果をソートする非常に特殊な方法が用意されています。

少し詳しく説明します。

インターフェイスには、「what」と「where」の 2 つのフィールドがあります。

両方のフィールドは、実際にはフィールドのセット (what = カテゴリ、名前、連絡先情報... および where = 国、州、地域、都市...) であるため、Solr の copyfield 機能がすぐに思い浮かびます。実際の一致が生成されたフィールドに基づいて、結果は特定のバケットに収まるはずです。特に、最初のバケットには、カテゴリ フィールドが完全に一致するすべての結果ドキュメントが含まれます。2 番目のバケットには、名前が完全に一致するすべての結果、3 番目はカテゴリが部分的に一致するもの、4 番目は名前が部分的に一致するもの、5 番目は連絡先情報が一致するものです。など...次に、これらの第 1 層の各バケット内で、一致した場所 (都市、地域、州など) に応じて、すべての結果が第 2 層のバケットに配置されます。さらに複雑なことに、ランキング フィールドの値に従って結果が配置される第 3 層のバケットもあります。ランキング フィールドの値が 1 であるすべてのドキュメントはバケット 1 に入ります。そして最後に、結果は第 3 層のバケットでランダム化する必要があります...

これに加えて、彼らは明らかにファセットとページングのサポートを望んでいます。

長いメールで申し訳ありませんが、フィードバックや提案をいただければ幸いです。

これは非常に特殊な問題であることは承知していますが、私を正しい方向に向けてくれるものはすべて役に立ちます。

乾杯、トム

4

1 に答える 1

1

アプリケーションは、この複雑な並べ替えアルゴリズムを関連性のプロキシとして使用しているようです。Solr はスコアリングを使用してこのタイプのソートを行い、スコアリング式を制御する多くの方法を提供します。

たとえば、フレーズ一致をキーワード一致よりも上位にランク付けしたり、特定のフィールドに高い重みを付けたりすることができます。独自のカスタム コードを記述して、それをかなり簡単にプラグインすることもできます。

このアプローチでは、現在のアプリの正確な順序を再現できない場合がありますが、それは必ずしも悪いことではありません。

于 2010-06-08T19:48:35.160 に答える