Solr UninvertingReader getNumericDocValues似乎不适用于未存储或索引的字段

时间:2016-01-19 22:27:19

标签: solr lucene

我在schema.xml中有一个已定义的字段,它是一个简单的float,它没有存储也没有索引如下:

<field name="boost" type="float" docValues="true" indexed="false" stored="false" required="false" multiValued="false"/>

在Solr 4中,我能够通过以下方式获得浮点值:

FieldCache.Floats docBoosts = FieldCache.DEFAULT.getFloats(context.reader(), FieldName.Boost, false);
float boost = docBoosts == null ? 1.0f : docBoosts.get(doc)
return boost == 0.0f ? 1.0f : boost

在Solr 5中,我尝试这样做而不是FieldCache:

 NumericDocValues docBoosts = DocValues.getNumeric(context.reader(),  FieldName.Boost)

然而这种方法不起作用,因为UninvertingReader.getType无法检测到该字段是浮点数,而是为我提供了Lucene54DocValuesProducer的NumericDocValue,它将0.95f的值更改为1.06451437E9。

有没有人发现类似的问题,如果有的话你能告诉我我错过了什么吗?

0 个答案:

没有答案