gpt4 book ai didi

api - 使用 Lucene API 显示来自 Solr 索引的浮点字段

转载 作者:行者123 更新时间:2023-12-02 00:25:54 24 4
gpt4 key购买 nike

我继承了一些使用 Lucene API 查询 Solr 索引的代码。

代码做了很多搜索,最后将所有找到的lucene文档转换为solr文档:

// doc:Document

val sdoc = new SolrDocument

for (f:Fieldable <- doc.getFields if f.isStored) {
sdoc.addField(f.name(),f.stringValue())
}

这工作正常,除非字段值不是字符串,例如 float 或 bool 值。在 float 字段上,stringValue() 返回一些奇怪的字符(例如 ¿£൱),大概是 float 的字符串表示形式。

如何从 Lucene 文档中正确获取浮点值?

最佳答案

对于存储为二进制值的数字,您需要通过 doc.getBinaryValue(fieldName) 获取,您将获得 byte[] 作为您必须转换的返回值它变成你适当的数值。这是你可以做的:

if(!field.isBinary()){
sdoc.addField(fieldName, doc.get(fieldName));
} else{
ByteBuffer buff = ByteBuffer.wrap(doc.getBinaryValue(fieldName));
sdoc.addField(fieldName, buff.getFloat());
}

这是一个 SO Quetion为转换提供帮助。

关于api - 使用 Lucene API 显示来自 Solr 索引的浮点字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8922526/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com