lucene字段的store属性

hgu*_*ser 12 lucene indexing field

有一个lucene字段的构造函数:

Field(String name, String value, Store store, Index index)
Run Code Online (Sandbox Code Playgroud)

例如,我可以通过以下方式创建一个新字段:

Field f1 = new Field("text", "The text content", Field.Store.YES, Field.Index.ANALYZED);
Run Code Online (Sandbox Code Playgroud)

我不完全确定第四个参数的含义: Index

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

因为在我看来,一旦一个属性被声明为一个字段,它应该被索引,如果没有那么为什么你将它声明为一个字段?

查询和搜索有什么区别?

Rob*_*bin 21

Lucene FAQ中所述:

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

  • Stored = as-is值存储在Lucene索引中
  • 使用指定的分析器分析Tokenized =字段 - 对所发出的标记进行索引
  • Indexed =文本(使用关键字字段的原样,或来自标记化字段的标记)可搜索(也称为倒置)
  • 向量=每个文档的术语频率以易于检索的方式存储在索引中.

您可以直接索引字段内容而不存储它,该字段也可以搜索,只是无法突出显示结果,因为突出显示需要原始邮件内容,应该存储.

  • 例如,存储postid,索引帖子内容,然后你可以在搜索lucene之后按postid加载这些帖子. (4认同)

Pas*_*imo 21

存储字段是当您要求Lucene返回文档时返回的字段.它们保持一个字段的原始值,没有分析.您可以使用它们将文档呈现给用户(不一定是所有字段).

未编制索引的存储字段可用于存储有关用户不会用于查询索引的文档的元数据.一个示例可能是文档来自的数据库ID.用户永远不会使用此ID,因为他们不知道它,因此索引它通常是无用的.但是如果你存储它,那么你可以使用它在运行时从db收集额外的信息.

查询和搜索之间的差异是相当主观的.对于我自己来说,搜索实际上是在索引中搜索的一般行为,而查询是用于搜索索引的实际查询字符串.