我在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
的内容?
答案 0 :(得分:0)
某些字段内容可以恢复,多少取决于所使用的索引选项。
LowerCaseFilter
,原始案例将无法重建。IndexOptions.DOCS_AND_FREQS
编制索引,则有人可以说出一个术语被提及了多少次。IndexOptions.DOCS_AND_FREQS_AND_POSITIONS
进行索引,则有人将能够重构术语的顺序(但是他将无法看到在分析过程中被丢弃的东西,例如标点符号)。已添加:如femtoRgon在StringField
的特殊情况下所提到的,您明确要求Lucene将整个字段值视为单个项,而无需其他处理。这将始终显示字段值,因为存储了术语(如我在上面的第一点所述)。