我正在将 Lucene 搜索 API 用于 .net Web 应用程序。我能知道使用 MultiSearcher 的优缺点吗?我应该在什么场景下使用它?
谢谢阅读!
我正在将 Lucene 搜索 API 用于 .net Web 应用程序。我能知道使用 MultiSearcher 的优缺点吗?我应该在什么场景下使用它?
谢谢阅读!
的主要缺点MultiSearcher
是将来自多个搜索者的结果合并到一组匹配中存在一些开销。这类似于您使用未优化的索引所遭受的惩罚,尽管可能没有那么严重 - 这取决于涉及多少搜索者。
但是,MultiSearcher
如果您有很多文档,或者需要经常更新,它会非常有用。如果您有一个庞大的数据库,它允许您将文档分成组,以便在不同的机器上并行索引,然后一起搜索。如果您需要频繁更新,您可能会发现一个MultiSearcher
具有一个文件系统目录和一个 RAM 目录的目录可以为您提供快速索引更新。新文档进入 RAM 目录,并定期将 RAM 目录的内容合并到文件系统目录中。
还要考虑ParallelMultiSearcher
。根据您的机器架构和查询负载,这可能会造成伤害或帮助。如果您有很多内核,这可能会有所帮助,但线程会涉及额外的开销,因此需要在代表性负载下进行一些分析。