2010-10-14 56 views
1

我想將RSS提要每小時檢索一次的數據存儲在數據庫或Lucene中,以便文本可以很容易地爲wordcounts編制索引。使用Lucene存儲來自RSS源的數據

我需要從RSS項目的標題和描述元素中獲取文本。

理想的情況下,從給定提要每個小時檢索,我想補充一個行到表中由以下列的數據集:

FEED_URL,title_element_text,description_element_text,polling_date_time

從這,我可以查看Feed中的任何元素,並根據所需的時間長度計算關鍵字計數。

這可以通過數據庫表和hashmaps來計算計數。但是我可以在Lucene中完成這個粒度嗎?如果是這樣,每個feed會形成一個Lucene文檔,還是每個數據庫表中的'row'會形成一個?

任何人都可以建議嗎?

謝謝

Martin O'Shea。

+0

也許CouchDB會更適合這種應用。 – 2010-10-15 12:32:07

+0

特別是這個CouchApp:http://github.com/maxogden/couchpubtato我不知道你應該如何做索引,但是投票是壞的,所以實現PubsubHubbub :) – 2010-10-25 07:17:52

回答

0

我你的問題的解析是:

for each item in feed: 
    calculate term frequency of item, then add to feed's frequency list 

這是不是一件Lucene的擅長,所以CouchDB的或其他數據庫可能是如果沒有更好的選擇(如larsmans建議)一樣好。然而,這是可以做到(在某種程度上可能比其他的DB稍微容易):

HashMap<string, int> terms = new HashMap<string, int>(indexReader.getUniqueTermCount()); 
TermEnum tEnum = indexReader.Terms(); 
while (tEnum.Next()) 
{ 
    results.Add(tEnum.Term().Text(), tEnum.DocFreq()); 
} 

所有Lucene是節省您的計算docfreq的困難,它可能會比循環快一點通過你自己的所有行。但是,如果性能差異對於合理的小數據集顯而易見,我會感到驚訝。

相關問題