Lucene 6.2.1 - IllegalStateException" field-name"被索引没有位置数据;无法运行SpanTermQuery

时间:2017-01-19 16:07:46

标签: lucene

我不熟悉lucene。最近我有机会参与他们正在从旧的lucene版本2.4.1移动到 6.2.1 的工作。

在使用新版本6.2.1运行时,我们在搜索时遇到异常:

  

查询字段中的异常" field_name"被索引没有位置数据;无法运行SpanTermQuery(term = 2887629129)**

在代码中,字段创建如下:

doc.add(new Field("field_1", "field_value", StringField.TYPE_STORED));

最后我们尝试了如下:

FieldType type = new FieldType();
type.setStored(true);
type.setIndexOptions(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS);
doc.add(new Field("field_1", "field_value", StringField.TYPE_STORED));

通过上述更改,之前的错误消失了,但我们没有收到任何搜索结果,结果为空。

1 个答案:

答案 0 :(得分:0)

鉴于您使用的是SpanQuery,我假设您希望分析该字段。没有分析的StringField个索引作为单个标记。您需要使用TextField

doc.add(new Field("field_1", "field_value", TextField.TYPE_STORED));

此处无需设置IndexOptions,默认设置为DOCS_AND_FREQS_AND_POSITIONS