0

バックグラウンド:

1-この検索にはWebSolrを使用しています。2-websolrに2つのフィールド(nameとid)が格納されています。

名前に基づいてこれらのエントリを検索し、次の基準に基づいて検索スコアを上げたいと思います。

if id in [x1,x2..xN] then +2
if id in [y1,y2..yN] then +1
else +0

私の調査によると、答えは次のとおりです-関数クエリ、または-DisMaxQParser

私はドキュメントを見ましたが、IMOはあまり包括的ではありません。

どんな助けでも大歓迎です。

4

2 に答える 2

1

ブーストを使用できます。次のようなクエリを試してください

name:searchString AND ( id:[x1 TO xN] ^2 OR id:[y1 TO yN]^1)
于 2011-07-07T08:30:32.190 に答える
0

hkn のアプローチに加えて、DisMax クエリ パーサーブースト クエリを使用することもできます。

q=queryString
&defType=dismax
&qf=…
&bq=id:[x1+TO+xN]^3
&bq=id:[y1+TO+yN]^2

(テストされていませんが、アイデアを伝える必要があります。)

于 2012-04-26T18:03:36.533 に答える