2011-04-04 75 views
3

在Lucene中,我想在数字字段上建立一个'模糊'查询。目前我发现的全部是搜索数字字段的NumericRangeQuery类。在我构建的应用程序中,用户需要指定一组类型以及他希望在特定集合中发生的此类对象的数量。例如,用户可以查询“4汤匙,13叉和1刀”。搜索数字字段

我需要一个基于期望的金额和实际金额的距离计算每个数字字段的查询。例如,score =(distance + 1)^ - 1应该会产生很好的结果。有没有一种简单而有效的方法呢?

+0

嗨大卫。我会为下面的回答者提供一些反馈意见,以便他们知道他们是否回答了问题。它有助于激励人们投入努力。 – 2011-12-09 05:33:28

回答

1

A Payload应该实际上做你想要的。 它允许您将任意数据附加到您的每个术语,然后可以在搜索过程中检索以影响评分,匹配和排序。

具体来说,看看PayloadNearQuery

从你描述的例子中可以看出,对于你需要做什么而言有点含糊。例如数字4,13和1与查询勺子,叉子和刀子的命中次数有关吗?或者,你是否将这些计数存储在索引中?