gpt4 book ai didi

java - Lucene 7 未对 double 值进行索引

转载 作者:行者123 更新时间:2023-12-02 10:22:26 26 4
gpt4 key购买 nike

你好,

我无法使用 Lucene 7 为 double 值建立索引。执行后

public void indexDouble(Document document, String name, Double value) {
double val = (double) value;
document.add(new DoublePoint(name, val));
}

我正在与 Luke 检查索引值,该索引的值始终为空。

向文档添加 DoublePoint 后(在我的例子中为 44),在调试时我可以看到该值已添加

 DoublePoint <9xjcl4v4r:vq4ebgph8:44.0> stored<9xjcl4v4r:vq4ebgph8:44.0> 

已存储,但我没有看到“索引”标志。不确定这是否是问题所在,因为我以相同的方式对长值进行索引并且搜索正在工作。

有什么想法吗?

谢谢

最佳答案

公平地说,我非常怀疑它是否像你所描述的那样起作用。

原因如下 - 所有 Point 类型,包括 DoublePoint 都只是索引字段而不是存储,因此它们甚至在 JavaDoc 中有注释:

An indexed double field for fast range filters. If you also need to store the value, you should add a separate StoredField instance.

你在路加福音中看不到任何东西的原因也很简单。 Luke本身并不是魔法,它只能向你显示值,如果它们被存储了(事实并非如此)。但是,您仍然可以搜索它们,只是无法检索它们。

为了调试/检索目的,您需要添加另一个存储字段,如下所示:

doc.add(new StoredField(“double_stored”, value));

关于java - Lucene 7 未对 double 值进行索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54238611/

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