我在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。
有没有人发现类似的问题,如果有的话你能告诉我我错过了什么吗?