Lucene 匹配旧版本的 Keyword 和 UnIndexed 选项
Lucene matching Keyword and UnIndexed options from older version
旧版本
- 关键字—不分析,但被索引并存储在索引中
逐字记录。
- UnIndexed—既不分析也不索引,但其值存储在
索引不变。
更新版本
For matching Keyword what would be the difference between
new Field( name, value, Field.Store.YES, Field.Index.NOT_ANALYZED )
和
new Field( name, value, Field.Store.YES, Field.Index.NOT_ANALYZED_NO_NORMS )
Matching Unindexed =
new Field( name, value, Field.Store.YES, Field.Index.NO )
And finally what could be the usage of ?
new Field( name, value, Field.Store.NO, Field.Index.NOT_ANALYZED )
NOT_ANALYZED
和NOT_ANALYZED_NO_NORMS
的区别在于没有规范。标准包括少量用于评分命中的元数据。这包括索引时间字段提升和长度范数。如果该字段只有一个术语(如 NOT_ANALYZED 字段通常那样),则长度范数并不真正相关。因此,如果您不需要在索引时进行字段提升,则可以安全地无规范地进行索引,并为每个文档的每个字段节省 space 字节。
是的,
new Field( name, value, Field.Store.YES, Field.Index.NO )
这将是索引仅存储的非索引字段的好方法。
用法:
new Field( name, value, Field.Store.NO, Field.Index.NOT_ANALYZED )
将在不进行分析的情况下对值的全部内容进行索引和搜索,并且不存储用于从索引中获取的值。传入的 Store 值是您是否需要能够从搜索结果中获取该数据。索引值控制您将如何搜索它(如果有的话)。
不要混淆:
new Field( name, value, Field.Store.NO, Field.Index.NO )
它的用法是抛出一个IllegalArgumentException
。
旧版本
- 关键字—不分析,但被索引并存储在索引中 逐字记录。
- UnIndexed—既不分析也不索引,但其值存储在 索引不变。
更新版本
For matching Keyword what would be the difference between
new Field( name, value, Field.Store.YES, Field.Index.NOT_ANALYZED )
和
new Field( name, value, Field.Store.YES, Field.Index.NOT_ANALYZED_NO_NORMS )
Matching Unindexed =
new Field( name, value, Field.Store.YES, Field.Index.NO )
And finally what could be the usage of ?
new Field( name, value, Field.Store.NO, Field.Index.NOT_ANALYZED )
NOT_ANALYZED
和NOT_ANALYZED_NO_NORMS
的区别在于没有规范。标准包括少量用于评分命中的元数据。这包括索引时间字段提升和长度范数。如果该字段只有一个术语(如 NOT_ANALYZED 字段通常那样),则长度范数并不真正相关。因此,如果您不需要在索引时进行字段提升,则可以安全地无规范地进行索引,并为每个文档的每个字段节省 space 字节。
是的,
new Field( name, value, Field.Store.YES, Field.Index.NO )
这将是索引仅存储的非索引字段的好方法。
用法:
new Field( name, value, Field.Store.NO, Field.Index.NOT_ANALYZED )
将在不进行分析的情况下对值的全部内容进行索引和搜索,并且不存储用于从索引中获取的值。传入的 Store 值是您是否需要能够从搜索结果中获取该数据。索引值控制您将如何搜索它(如果有的话)。
不要混淆:
new Field( name, value, Field.Store.NO, Field.Index.NO )
它的用法是抛出一个IllegalArgumentException
。