Lucene 索引 - Export/Query 'indexed' 不是 'stored' 的文本字段值

Lucene index - Export/Query 'indexed' text field values that are not 'stored'

我有一个 Lucene 索引,文档文本是 'indexed' 但不是 'stored'。

我正在使用 Luke v7.6.0,它非常适合 'visualising' 索引。

显然,因为我的文档文本已编入索引但未存储,所以我无法复制或查询 'stored' 值(没有),但我能以某种方式将索引文本值提取到剪贴板或文本文件吗允许我准确分析从我的文件中索引的内容?

您可以做的事情之一是手动检查 Lucene index files

我怀疑最重要的是术语词典文件 (*.tim)

我已将没有存储值和术语的文档编入索引 - test@test.com 在字段电子邮件中(TextFieldStandard 分析器) 和字段名称中的 John (StringField)

在这个之后,我用十六进制编辑器打开了 tim 文件并且能够看到这样的东西:

你可以清楚地看到 test, test, com 的值被 Standard one 标记化了,你也可以看到 John 仍然保持不变,因为我使用了 StringField。在我的其他示例中,我也能够看到小写的工作。

提醒一下,如果你想重复一遍——默认情况下,对于小索引,Lucene 会将所有内容放入复合文件中,我不喜欢这种特定调试。您可以通过 setUseCompoundFile(false)

禁用此功能