Lucene匹配旧版本的Keyword和UnIndexed选项

时间:2015-03-26 21:35:16

标签: lucene lucene.net

旧版

  • 关键字 - 未分析,但已编入索引并存储在索引中 逐字。
  • UnIndexed - 既未分析也未编入索引,但其值存储在 索引原样。

较新版本

  

匹配关键字

之间会有什么区别
new Field( name, value, Field.Store.YES, Field.Index.NOT_ANALYZED )

new Field( name, value, Field.Store.YES, Field.Index.NOT_ANALYZED_NO_NORMS )
  

匹配未索引=

new Field( name, value, Field.Store.YES, Field.Index.NO )
  

最后可能是什么用途?

new Field( name, value, Field.Store.NO, Field.Index.NOT_ANALYZED )

1 个答案:

答案 0 :(得分:1)

NOT_ANALYZEDNOT_ANALYZED_NO_NORMS之间的区别在于,没有规范。规范包括用于评分命中的少量元数据。这包括索引时间字段提升和长度范数。如果该字段只有一个术语(通常为NOT_ANALYZED字段),则长度规范并不真正相关。因此,如果您不需要在索引时进行字段提升,则可以安全地索引没有规范,并为每个文档保存每个字段的空格字节。


是,

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