2010-05-31 18 views
1

我正在面對基於用戶點擊日誌排序Lucene結果的問題。我希望更多的訪問結果是第一位的。有誰知道如何在Lucene或Solr中配置或實現這樣的屬性?Solr/Lucene用戶點擊排名

非常感謝。

回答

2

您可以在架構中聲明一個可排序的整數字段(我們稱之爲clickNum),默認情況下爲每個索引文檔設置爲零。 當用戶打開文檔時,您的應用通過設置clickNum = clickNum + 1觸發clickNum字段的更新。

在查詢端,您可以根據主要排序參數(如果有)和clickNum設置一個多重排序: sort=<field name>+<direction>[,clickNum+desc]

您可以通過將您的點擊日誌存儲在外部數據庫中,並使用後查詢精化對結果進行重新排序來避免文檔更新,但恕我直言,這不是一個好的選擇。

0

使用Dismax可能是一個不錯的選擇。 Dismax的bf(Boost Functions)參數可以設置爲用高點擊次數提升文檔。

如果您不想使用Dismax,也可以在bf(Boost Functions)參數中使用function query