0

我们有超过 50 亿个文档需要为全文搜索建立索引。所有这些文件都是静态的,永远不需要更改。

经过大量研究,我们发现在 Redis 中使用咆哮位图来构建倒排索引非常快,而且资源极少。

现在的问题是,我们可以在 lucene 倒排索引中使用咆哮位图吗?

4

2 回答 2

1

Lucene 多年来默认使用 Roaring 位图。它是在 2014 年添加的https://issues.apache.org/jira/browse/LUCENE-5983

Elias Fano 于 2015 年被移除。https://issues.apache.org/jira/browse/LUCENE-6484

于 2021-09-03T04:58:24.460 回答
0

使用咆哮位图的想法已经在 Lucene 世界中进行了评估。您可以在这里查看完整结果 - http://people.apache.org/~jpountz/doc_id_sets4.html

一般的想法是,虽然咆哮位图很有效,但它只能用于 2 个功能:

  • 遍历所有匹配的文档(如果您运行恒定分数查询可能会出现这种情况)

  • 前进到集合中包含的第一个 doc id,这通常用于过滤器和查询之间的交集

总而言之,我认为目前 Lucene 在大多数情况下都使用Elias-Fano编码,测量速度更快。这也意味着,您可以只使用 Lucene 并确信它在构建倒排索引和处理查询方面具有极快的速度

于 2019-10-28T07:48:41.140 回答