12

Lucene.Net 是否适合作为内容频繁变化的搜索引擎?

或者更具体地说,任何人都可以就 lucene.net 索引的更新速度给出主观意见。任何其他搜索频繁变化的内容的方法都会很棒。

我们正在开发一个论坛。论坛帖子将经常添加到论坛存储库中。我们认为我们需要将这些帖子快速添加到 lucene 索引中(<0.5 秒),以便可以搜索。最初在存储库中将有大约 5E6 个帖子。假设搜索引擎在非异国服务器上运行(我知道这很模糊!)。

其他关于解决搜索频繁变化的内容问题的建议表示赞赏。论坛帖子需要在可变数量的命名标签上进行搜索(标签名称和值必须匹配)。基于 SQL 的方法(基于 Toxi 模式)并没有给我们想要的性能。

4

2 回答 2

9

Out 论坛 ( http://episteme.arstechnica.com ) 使用 Lucene 作为搜索后端,所以它是可行的。帖子的索引速度不如您希望的那样快,但我们可以通过增强索引硬件和使用更智能的缓存策略来解决这个问题。

这个问题的一般答案是:这取决于您的写入/更新模式是什么。论坛相对容易,因为大多数内容都是新内容,而现有内容的更新频率较低。

对于论坛,我建议有一个“存档”索引和一个“实时”索引。实时索引可能包括最后一天、一周、一年的帖子,而存档索引将包括大量可能永远不会再被触及的帖子。因此,当有人创建新帖子时,它最初会在实时索引中被索引。稍后,一些批处理作业会清除实时索引,并将所有内容重新索引到存档中。

Lucene 非常擅长跨多个索引进行查询。你应该滥用这种能力。:)

于 2008-11-07T15:39:07.300 回答
4

Lucene.Net 速度非常快,但是当使用错误时,有很多事情会减慢查询速度。我强烈推荐阅读 Erik Hatcher 和 Otis Gospodnetić 的Lucene in Action一书。它包含一个关于性能测试和调优的非常好的章节。

于 2008-11-20T10:59:09.927 回答