5

在 Lucene 3.9 版本之前,我们可以使用 FIELD.INDEX.NO 或 FIELD.INDEX.ANALYZED 等指定索引或不索引字段。但是在 lucene 4.0 中没有可用的构造函数,我们可以在其中定义 this 。在这个版本中我们如何控制索引?

我的意思是,如果我希望将字段“名称”存储在索引中但不想对其进行索引,那么我该如何在 lucene 4.0 中做到这一点?

4

1 回答 1

17

可以使用带参数的构造Field.Index函数,但在 4.0 中已弃用,不应使用。相反,您应该查看 的子类Field来控制字段的索引方式。

  • StringField是标准的未分析索引字段。被索引的字段是单个标记。它是合适的东西,比如标识符,您只需要搜索完全匹配的东西。

  • TextField是文本内容的标准分析(当然还有索引)字段。它是全文搜索的合适选择。

  • StoredField是一个完全没有索引的存储字段(因此,不可搜索)。

除了StoredField,它们中的每一个都可以Field.Store作为构造函数参数传递一个值,类似于 Lucene 3.6。

有关此更改的更多信息,请查看Lucene 迁移指南,特别是标题为“将 IndexableFieldType 与字段实例分开”的部分

于 2013-09-02T06:49:29.420 回答