我正在从Lucene 3迁移到Lucene 5.3,我在转换一行代码时遇到了问题。
我曾经传递字段 Field.Index.ANALYZED,Field.TermVector.YES
现在,使用此代码:
Document.Add(new TextField("Tags", Data.Tags, Field.Store.YES));
我不知道如何传递TermVector字段,以便可以查找标记词 5.3 doc本质上是一个类列表,对任何事情都没有真正的解释,而Lucene 3在论坛中有很多信息,我找不到关于5.3的任何信息
答案 0 :(得分:5)
这是Lucene 4.0中发生的更改,因此您可能正在查看错误的资源以了解此问题。它包含在4.0 Migration Guide中(查找标题为“从Field实例中分离IndexableFieldType”的部分)
您需要定义FieldType
以传递到Field
构造函数。如果你最想要TextField
行为,但是使用术语向量,你可以复制TextField的标准FieldTypes,并修改它们,如下所示:
FieldType myFieldType = new FieldType(TextField.TYPE_NOT_STORED);
myFieldType.setStoreTermVectors(true);
...
Field f = new Field("Tags", Data.Tags, myFieldType);