2011-08-01 93 views
1

我正在實施Solr dismax搜索並使用此功能recip(ms(NOW,PubDate),3.16e-11,1000,1000)進行日期提升。 Everthing工作正常,但只有一個問題。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

如果您使用boost,則不應使用訂單子句。 如果你想給日期更多的相關性,所以皮條客你的助推功能。這取決於你,對於搜索結果的順序來說,影響力大的是誰。

這也取決於你所使用的dismax處理程序:

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

把一個值,而不是0和2之間的<val>佔位符,其中0表示幾乎「按日期順序」和2是爲了通過關聯。

不確定,如果這適用於dismax,但它適用於標準solr搜索處理程序(使用除上述示例之外的其他語法)和edismax。

+0

非常感謝。我會試試這個! –