我希望每小时从数据库或Lucene中的RSS源检索数据,以便可以轻松地为wordcounts索引文本。
我需要从RSS项目的标题和描述元素中获取文本。
理想情况下,对于从给定Feed中每小时检索一次,我会在由以下列组成的数据集中的表中添加一行:
feed_url,title_element_text,description_element_text,polling_date_time
由此,我可以查找Feed中的任何元素,并根据所需的时间长度计算关键字计数。
这可以作为数据库表和用于计算计数的哈希映射来完成。但是我可以在Lucene中完成这种程度的粒度吗?如果是这样,每个Feed会形成一个Lucene文档,还是数据库表中的每个'row'形成一个?
有人可以提供建议吗?
由于
Martin O'Shea。
答案 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的难度,它可能比自己循环遍历所有行要快一些。但如果相对较小的数据集的性能差异显而易见,我会感到惊讶。