Java 未使用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

你好

我没有设法用Lucene 7索引一个双值。 执行后

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只显示存储的值,没有索引。非常感谢。