2011-08-01 9 views
1

私はSolrのdismax検索を実装しています。また、この機能を使用してrecip(ms(NOW,PubDate),3.16e-11,1000,1000)を追加しました。すべてがうまくいっていますが、問題は1つしかありません。Solrの日付をブーストして適切な結果でソートする

タイトルで検索キーワードが繰り返されると、最近の検索結果よりもスコアが高くなります。

ユーザーが「検索した場合

古い 1)タイトル=のSolrはLucene古い

日= 1日

2)タイトル=のSolrのLuceneが最善である、愛のSolrはLucene

日= 15日solr lucene 'の場合、#2はタイトル内でキーワードが繰り返されるため、最初の位置になります。

私は1,2、または3日齢のレコードがあまりにも多く、「SOLR LUCENE」と全く同じタイトルがありますが、古いレコードにはタイトルでキーワードが繰り返されているため、最初のページには表示されません。

結果を日付で完全に並べ替えたくないです。現在、私はこれをこのように分類しています。 sort = score desc、date asc

答えて

2

ブーストを使用している場合は、注文句を使用しないでください。 日付をより関連性のあるものにしたい場合は、ブースト機能を導入してください。それは検索結果の順序に対する日付の影響が大きい、あなた次第です。それはまた、あなたが使用しているdismax-ハンドラに依存

{!edismax boost=recip(pow(ms(NOW,PubDate),<val>),3.16e-11,1,1)} 

が0に近い「日付順」で、2 0と2の間<val>プレースホルダーの代わりに値を入れては順です関連性

これがdismaxで機能するのかどうかはわかりませんが、標準のsolr検索ハンドラ(上記の例以外の構文もあります)とedismaxで動作します。

+0

ありがとうございます。私はこれを試してみよう! –

関連する問題