lucene字段的store属性

lucene字段的store属性,lucene,indexing,field,Lucene,Indexing,Field,lucene字段有一个构造函数: Field(String name, String value, Store store, Index index) 例如,我可以通过以下方式创建新字段: Field f1 = new Field("text", "The text content", Field.Store.YES, Field.Index.ANALYZED); 我不太清楚第四个参数的含义:Index 如果我将其设置为Index.No,那么是否需要将此字段添加为“字段” 因为在我看来,一旦

lucene字段有一个构造函数:

Field(String name, String value, Store store, Index index)
例如,我可以通过以下方式创建新字段:

Field f1 = new Field("text", "The text content", Field.Store.YES, Field.Index.ANALYZED);
我不太清楚第四个参数的含义:
Index

如果我将其设置为
Index.No
,那么是否需要将此字段添加为“字段”

因为在我看来,一旦一个属性被声明为一个字段,它就应该被索引,如果不是的话,为什么要将它声明为一个字段

查询和搜索之间有什么区别?

如中所述:

存储、标记、索引和向量之间有什么不同?

  • 存储=存储在Lucene索引中的值
  • Tokenized=使用指定的分析器分析字段-对发出的标记进行索引
  • 索引=文本(与关键字字段相同,或来自标记化字段的标记)可搜索(也称为反向)
  • Vectored=每个文档的术语频率以易于检索的方式存储在索引中

您可以只索引字段内容而不存储它,该字段也是可搜索的,只是不能突出显示结果,因为突出显示需要原始消息内容,而原始消息内容应该存储。

存储的字段是您创建时返回的字段。它们保留字段的原始值,不进行分析。您可以使用它们向用户呈现文档(不一定是所有字段)

未编制索引的存储字段可用于存储有关用户不用于查询索引的文档的元数据。例如,文档来自的数据库id。用户永远不会使用该id,因为他们不知道该id,所以对其进行索引通常是无用的。但如果您存储了它,那么您可以在运行时使用它从数据库中收集额外的信息


查询和搜索之间的区别相当主观。对我来说,搜索实际上是在索引中搜索的一般行为,而查询是实际的。

那么为什么要创建一个字段而不为其编制索引呢?例如,存储postid,为帖子内容编制索引,然后可以在搜索lucene之后通过postid加载这些帖子。