1

EコマースWebサイトの場合、次のフィールドと重みを持つSOLRドキュメントとして製品を保存しました。タイトル:5説明:4

一部の製品では、上記の2つのフィールドでの関連性が、上位10に入る資格がない場合でも、上位10の結果に表示されるようにする必要があります。例:P1、P2、....P10は正当です。特定の検索キーワード「iPhone」の商品。私はS1...S100をスポンサー製品としてトップ10に表示したいと考えています。私のポリシーでは、これら100のスポンサー製品のうち2つだけがランダムに選択され、トップ10に表示されるため、結果はS5、S31になります。 、P1、P2、...P8。次のリクエストでは、スリップインするスポンサー製品はS4、S99である可能性があります。

QueryElevationComponentを使用すると、キーワードのdocIDを指定できますが、スポンサー付きdocIDの完全なセットのうち2つだけが結果で送信されるように、結果をランダム化することはできません。

これを実装するための提案をいただければ幸いです。

ありがとう、ヤシュ

4

3 に答える 3

0

これは、Solrに対して2つの別々のクエリを発行する必要がある場合のように聞こえます。1つは正規の製品用で、もう1つはスポンサー製品用です。次に、返される2つのSolr結果に基づいて結果を手動で操作/構築し、期待される動作を満たすようにする必要があります。Solrでこれを直接達成する方法はわかりません。

于 2012-10-04T11:48:58.060 に答える
0

あなたを正しい方向に導くかもしれないただの考え:

FunctionQueryを使用して並べ替えることができます。このFunctionQuery内で、結果がスポンサー付きの結果であるかどうかを確認できます。はいの場合、スポンサー付き結果のインデックス(0-99)とms()によって取得された実際の時間の2桁の部分に応じて、最初のクエリのスコアを返すことで結果を上げるかどうかを決定できますまたは変更されたもの。

インデックスが2つの2桁の部分のいずれかと同一である場合、結果は持ち上げられます。

于 2012-10-04T13:48:40.863 に答える
0

これは解決されました pls は標高コンポーネントを使用します。

https://cwiki.apache.org/confluence/display/solr/The+Query+Elevation+Component

于 2015-08-14T12:27:53.403 に答える