旧版
较新版本
匹配关键字
之间会有什么区别
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 )
答案 0 :(得分:1)
NOT_ANALYZED
和NOT_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
。