algorithm - 通过将字段存储为字节而不是数十亿文档的字符串,将在 Lucene 索引中优化多少空间和处理

标签 algorithm lucene nlp information-retrieval

我了解倒排索引的概念以及字典存储优化如何帮助将整个字典加载到主内存中以加快查询速度。

我想了解 Lucene 索引的工作原理。

假设我有一个 String 类型的字段,对于在 Lucene 中索引的 2000 亿份文档,它只有四个不同的值。该字段是存储字段。

如果我将字段更改为 Byte 或 Int 类型以表示所有 4 个不同的值并重新索引并存储所有 2000 亿个文档。

这种数据类型更改的存储和查询优化是什么?如果有的话。

请建议我是否可以在笔记本电脑上进行一些测试以了解情况。

最佳答案

据我所知,Lucene 中的文档由一个简单的字段值对列表组成。一个字段必须至少有一个值,但任何字段都可以包含多个值。类似地,单个字符串值可能会通过分析过程转换为多个值。

Lucene doesn’t care if the values are strings or numbers or dates. All values are just treated as opaque bytes.

更多信息,请参阅this document .

关于algorithm - 通过将字段存储为字节而不是数十亿文档的字符串,将在 Lucene 索引中优化多少空间和处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49764842/

相关文章:

python - 在闭合图中寻找唯一环

c - 最大的 3 个数字代码让我困惑

elasticsearch - Kibana发现未显示索引中的所有类型

nlp - 我在哪里可以获得常见标题的地名词典?

computer-science - 在自然语言处理中,分块的目的是什么?

algorithm - 是否可以有效地评估 lambda 演算项?

c# - 将在文件中查找素数的算法的结果存储 (C#)

java - 使用 Liferay 6.1 在自定义 Assets 上实现索引器

lucene - 将 Lucene HitCollector (2.x) 迁移到 Collector (3.x)

python - 在文件中突出但不完全重复的行