使用Lucene存储来自RSS提要的数据

时间:2010-10-14 12:42:24

标签: rss lucene

我希望每小时从数据库或Lucene中的RSS源检索数据,以便可以轻松地为wordcounts索引文本。

我需要从RSS项目的标题和描述元素中获取文本。

理想情况下,对于从给定Feed中每小时检索一次,我会在由以下列组成的数据集中的表中添加一行:

feed_url,title_element_text,description_element_text,polling_date_time

由此,我可以查找Feed中的任何元素,并根据所需的时间长度计算关键字计数。

这可以作为数据库表和用于计算计数的哈希映射来完成。但是我可以在Lucene中完成这种程度的粒度吗?如果是这样,每个Feed会形成一个Lucene文档,还是数据库表中的每个'row'形成一个?

有人可以提供建议吗?

由于

Martin O'Shea。

1 个答案:

答案 0 :(得分: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的难度,它可能比自己循环遍历所有行要快一些。但如果相对较小的数据集的性能差异显而易见,我会感到惊讶。