在 Lucene 中,我想在数字字段上构建一个“模糊”查询。目前我发现的只是NumericRangeQuery类来搜索数字字段。在我正在构建的应用程序中,用户将指定一组类型以及他希望在特定集合中出现的此类对象的数量。例如,用户可以查询“4勺13叉1刀”。
我需要一个查询,根据所需金额和实际金额的距离对每个数字字段进行评分。例如, score = (distance + 1)^-1 应该会产生很好的结果。有没有一种简单、有效的方法来做到这一点?
最佳答案
一个 Payload应该做你想做的事。
它允许您将任意数据附加到每个术语,然后可以在搜索期间检索这些数据以进行评分、匹配和排序。
具体来说,看看PayloadNearQuery .
但是,从您描述的示例来看,您需要做什么有点模棱两可。例如数字 4、13 和 1 是否与查询勺子、 fork 和刀子的点击次数有关?或者,您是否将这些计数存储在索引中?
关于搜索数字字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5542350/