能否恢复建立索引的Apache Lucene字段的内容

时间:2019-03-22 07:41:35

标签: lucene

我在Apache Lucene中索引String实体。例如

doc.add(new StringField(fieldNameSecret, fieldValueSecret, Field.Store.NO));
doc.add(new StringField(fieldNameMeta, fieldValueMeta, Field.Store.YES));

我希望用户能够搜索fieldNameSecret并返回fieldNameMeta。 由于fieldValueSecret的内容是明智的,我的问题是:是否可以重构/恢复fieldValueSecret的内容?

1 个答案:

答案 0 :(得分:0)

某些字段内容可以恢复,多少取决于所使用的索引选项。

  • 将存储单个术语,并将显示它们在特定字段值中的存在。
  • 加词法会弄乱术语,因此,如果词干消除了复数形式,则重构值将不会显示复数形式。同样,如果应用LowerCaseFilter,原始案例将无法重建。
  • 如果您使用IndexOptions.DOCS_AND_FREQS编制索引,则有人可以说出一个术语被提及了多少次。
  • 如果您使用IndexOptions.DOCS_AND_FREQS_AND_POSITIONS进行索引,则有人将能够重构术语的顺序(但是他将无法看到在分析过程中被丢弃的东西,例如标点符号)。

已添加:如femtoRgon在StringField的特殊情况下所提到的,您明确要求Lucene将整个字段值视为单个项,而无需其他处理。这将始终显示字段值,因为存储了术语(如我在上面的第一点所述)。

相关问题