【发布时间】:2011-07-12 22:18:58
【问题描述】:
我需要一些帮助来进行搜索。 假设我有一个非常简单的文档结构,只有 1 个字段,标记为名称。 我需要检索长度大于或小于指定值的所有名称。长度是指 String.length()。 范围过滤器在概念上似乎很接近,但我找不到一个很好的例子来编写我的具体案例。 感谢您的帮助。
【问题讨论】:
-
最简单的解决方案似乎是创建第二个包含长度的字段。我不确定如何使用
name字段的索引来有效地按长度查询。 -
我想我可以创建该字段,按其索引,然后进行范围过滤/查询。在我看来应该有一个更直接的解决方案,但这是一个很好的建议。
-
可能有一个更直接的解决方案,我只是 Lucene 的新手(这就是为什么我将我的建议写成评论而不是答案)但这当然是我会做的。
-
我从 lucene 用户列表中得到了相同的答案。我要再等一会儿,然后走那条路。如果您关心这些点,您可以将其添加为答案,我会将其标记为已解决。
-
使用长度创建 NumericField 是一个合理的建议,然后您可以使用 RangeQuery 来提取结果