2013-09-21 47 views
0

我想返回在具有特定值的文档后找到的所有匹配文档。该值是唯一的。 我曾尝试使用numericfilterrange。这不是一个好的解决方案,因为字段值可能是任何顺序基于特定字段筛选lucene搜索

回答

1

如果我明白你需要什么,使用数字范围是正确的方法来使你想要的东西变成你想要的。为了排序的同一领域,你需要一个Sort参数传递给你的搜索调用,这样的:

Sort sort = new Sort(new SortField("myNumericField", SortField.Type.INT)); 
searcher.search(query, maxDocs, sort) 
+0

我需要一定的价值已经在搜索中已经遭遇后保留所有的值。例如,所有文档在包含字段的某个文档之后,值为“5”的“id” – Neelesh

+0

因此,具有“id> 5”的所有文档,对不对?除非我误解了你的问题,你说你已经用'NumericRangeQuery'获得了。使用相同的查询,并按照指示添加“排序”。 – femtoRgon

+0

等待,重读,也许你正在寻求别的东西。实际上,您是否试图找到一个Document,然后返回所有在此之后写入索引的Document? Lucene文档实际上并没有一个有意义的自然顺序,只是基于DocID而不是真的足够。如果这就是你想要的,你应该有一个与之相关的领域。进入日期可能有意义。 – femtoRgon