Lucene.Net 是不是适合作为内容频繁变化的搜索引擎?
Posted
技术标签:
【中文标题】Lucene.Net 是不是适合作为内容频繁变化的搜索引擎?【英文标题】:Is Lucene.Net suitable as the search engine for frequently changing content?Lucene.Net 是否适合作为内容频繁变化的搜索引擎? 【发布时间】:2010-09-21 07:23:06 【问题描述】:Lucene.Net 适合作为经常变化内容的搜索引擎吗?
或者更具体地说,任何人都可以就 lucene.net 索引的更新速度给出主观意见。任何其他搜索经常变化的内容的方法都会很棒。
我们正在开发一个论坛。论坛帖子将经常添加到论坛存储库中。我们认为我们需要将这些帖子快速添加到 lucene 索引中(
对于解决搜索频繁变化的内容的问题的其他建议表示赞赏。论坛帖子需要在可变数量的命名标签上进行搜索(标签名称和值必须匹配)。基于 SQL 的方法(基于 Toxi 模式)无法提供我们想要的性能。
【问题讨论】:
即使问题已经得到解答,您也可能需要考虑使用服务器来处理搜索(如果可以选择进程外),例如 Solr 或 elasticsearch;两者都很好地处理索引的创建和管理,以及处理复制、分片等在处理大/多个索引时很重要的事情。 【参考方案1】:Out 论坛 (http://episteme.arstechnica.com) 使用 Lucene 作为搜索后端,所以它是可行的。帖子的索引速度不如您希望的那样快,但我们可以通过增强索引硬件和使用更智能的缓存策略来解决这个问题。
这个问题的一般答案是:这取决于您的写入/更新模式是什么。论坛相对容易,因为大多数内容都是新内容,而现有内容的更新频率较低。
对于论坛,我建议有一个“存档”索引和一个“实时”索引。实时索引可能包括最后一天、一周、一年的帖子,而存档索引将包括大量可能永远不会再被触及的帖子。因此,当有人创建新帖子时,它最初会在实时索引中被索引。稍后,一些批处理作业会清除实时索引,并将所有内容重新索引到存档中。
Lucene 非常擅长跨多个索引进行查询。你应该滥用这种能力。 :)
【讨论】:
【参考方案2】:Lucene.Net 速度非常快,但是如果使用不当,有很多东西会减慢查询速度。我强烈推荐阅读 Erik Hatcher 和 Otis Gospodnetić 的 Lucene in Action 书。它包含关于性能测试和调优的非常好的一章。
【讨论】:
以上是关于Lucene.Net 是不是适合作为内容频繁变化的搜索引擎?的主要内容,如果未能解决你的问题,请参考以下文章