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

标签 search lucene indexing lucene.net

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

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

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

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

最佳答案

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

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

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

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

关于search - Lucene.Net 是否适合作为频繁变化内容的搜索引擎?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/272427/

相关文章:

php - 搜索barre php+mysql "Page not found"

java - 使用 FSDirectory 的 Lucene

matlab - 获取 matlab 矩阵中特定索引处的元素值

javascript - 通过jquery在数据表中设置 "Search Box"的值为空

java - Solr中自动递增数字唯一id

Java 死锁 : are there cases where it is not a bug?

MySQL - 为什么在这种情况下二级索引不会减少此查询的时间?

indexing - 在 elasticsearch 中创建或更新映射

c++ - 线性搜索 vs 二进制搜索效率

java - Lucene 词干提取器之间的区别 : EnglishStemmer, PorterStemmer、LovinsStemmer