Java 未使用Lucene 7索引双值
你好 我没有设法用Lucene 7索引一个双值。 执行后Java 未使用Lucene 7索引双值,java,lucene,Java,Lucene,你好 我没有设法用Lucene 7索引一个双值。 执行后 public void indexDouble(Document document, String name, Double value) { double val = (double) value; document.add(new DoublePoint(name, val)); } 我正在使用Luke检查索引值,该索引的值始终为空 在向文档添加DoublePoint后(在我的示例44中),调试时,我可以看到该值被添加 D
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>
双点存储
已存储,但我看不到“索引”标志。不确定这是否是问题所在,因为我正在以相同的方式索引长值,并且搜索正在工作
有什么想法吗
谢谢你公平地说,我非常怀疑它是否如你所描述的那样有效 原因如下-所有点类型,包括双点都只是索引字段,没有存储,因此它们甚至在JavaDoc中有一条注释: 用于快速范围过滤器的索引双字段。如果你也需要 存储该值时,应添加一个单独的StoredField实例 你在卢克身上看不到任何东西的原因也很简单。卢克本身并不是一个魔术,它只能向你展示价值观,如果它们被存储的话(事实并非如此)。但是,您仍然可以搜索它们,只是无法将它们检索回来 出于调试/检索目的,您需要添加另一个存储字段,如下所示:
doc.add(new StoredField(“double_stored”, value));
是的,没错,我刚刚意识到Luke只显示存储的值,没有索引。非常感谢。