如何控制在lucene 4.0中索引字段

5 lucene

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

我的意思是如果我想要一个字段"名称"存储在索引但不想索引它,那么我怎么能在lucene 4.0中做到这一点?

fem*_*gon 16

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

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

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

  • StoredField 是一个根本没有索引的存储字段(因此,不可搜索).

除此之外StoredField,每个都可以Field.Store作为构造函数参数传递一个值,类似于Lucene 3.6.

有关此更改的更多信息,请查看Lucene迁移指南,特别是标题为" 从Field实例中分离IndexableFieldType "的部分.