2010-09-21 48 views
2

對於一個論壇,它的工作更好地索引的討論線程中的每個條目作爲一個單獨的Lucene的文檔或簡單CONCAT討論中的所有條目爲文本和索引的一個大的塊中的整個討論線程作爲一個單一的Lucene的文件?如何將論壇討論索引爲搜索?

回答

1

要看是什麼樣的,你正在尋找搜索功能。例如,如果您希望用戶能夠搜索在某個特定日期的線程中發生的關鍵字,那麼您必須將所有條目作爲帶有日期的單獨文檔進行索引(如NumericField可使用NumericRangeFilter進行搜索)。

索引中的每個條目作爲一個單獨的文件也將讓你得分使用Lucene的得分手,這將在檢索最相關的條目(而不是線程)作爲對查詢的響應幫助每個條目。此外,您還可以將線程主題作爲單獨的字段添加到每個條目文檔(代價更小的空間)。

連接所有條目,如果你想給用戶指出確切的感興趣的條目是不是一個好主意。 關於你從關於從同一個線程返回多個條目的問題(評論Ryan的答案),你可以在索引時爲每個條目添加一個線程ID。然後在顯示結果時,您只能顯示每個線程ID的條目(具有最高分數的條目可以與線程主題一起顯示)

0

如果您連接您遇到該錯誤的討論中所有條目,你不能針點要檢索的準確錄入。

Lucene的應該是能夠快速索引和搜索每個條目(後/線程/其他)。將它們混合在一起看起來似乎過分了。

+0

隨着您的建議,您想要顯示搜索結果時出現問題。您可能會在搜索結果中獲得相同討論主題的20個條目,因爲所有條目都包含相同的單詞。你能明白我的意思嗎? – Roman 2010-09-21 15:25:30

+0

確實可以返回多個條目,但您仍然可以控制最終顯示的內容,並且您應該能夠清楚地選擇每個條目的單數實例。 – 2010-09-21 15:44:03

0

我會更喜歡指數每個條目分開。它會使設計更靈活,因爲系統應該有某種主題實體來將條目分組在同一個線程中。另一個需要連接索引的問題是,一旦發佈了具有性能影響的新條目,就需要重新索引。

相關問題