使用Lucene存储RSS源中的数据

使用Lucene存储RSS源中的数据,rss,lucene,Rss,Lucene,我希望将每小时从RSS提要检索的数据存储在数据库或Lucene中,以便可以轻松地为文本编制字数索引 我需要从RSS项目的title和description元素中获取文本 理想情况下,对于从给定提要每小时检索一次,我会在由以下列组成的数据集中向表中添加一行: 提要url、标题元素文本、描述元素文本、轮询日期时间 由此,我可以查找提要中的任何元素,并根据所需的时间长度计算关键字计数 这可以作为数据库表和用于计算计数的哈希映射来完成。但我能在Lucene中做到这种粒度吗?如果是这样的话,每个提要是形成

我希望将每小时从RSS提要检索的数据存储在数据库或Lucene中,以便可以轻松地为文本编制字数索引

我需要从RSS项目的title和description元素中获取文本

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

提要url、标题元素文本、描述元素文本、轮询日期时间

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

这可以作为数据库表和用于计算计数的哈希映射来完成。但我能在Lucene中做到这种粒度吗?如果是这样的话,每个提要是形成一个Lucene文档,还是数据库表中的每个“行”形成一个文档

有人能提供建议吗

谢谢


马丁·奥谢。

我对你的问题的分析是:

for each item in feed:
    calculate term frequency of item, then add to feed's frequency list
这不是Lucene擅长的东西,所以CouchDB或其他db即使不是更好的选择也可能是一样好的(就像larsmans建议的那样)。但是,可以这样做(以一种可能比其他DBs稍微容易的方式):

HashMap terms=newhashmap(indexReader.getUniqueTermCount());
TermEnum tEnum=indexReader.Terms();
while(tEnum.Next())
{
添加(tEnum.Term().Text(),tEnum.DocFreq());
}

Lucene为您节省的只是计算docfreq的难度,它可能比您自己遍历所有行要快一点。但是如果性能差异对于相当小的数据集来说是明显的,我会感到惊讶。

也许CouchDB更适合这种应用。特别是这个CouchApp:我不确定你应该如何进行索引,但是轮询是不好的,所以实现pubsubb:)
HashMap<string, int> terms = new HashMap<string, int>(indexReader.getUniqueTermCount());
TermEnum tEnum = indexReader.Terms();
while (tEnum.Next())
{
    results.Add(tEnum.Term().Text(), tEnum.DocFreq());
}