ElasticSearch多个短语,多个距离

时间:2017-04-06 04:16:40

标签: elasticsearch elasticsearch-query

我们有一个应用程序,您可以按照'Ford Mustang'和'Fly Rod'等关键字进行操作。但是,当您按照关键字时,可以为其指定范围距离。例如,您可能愿意为“1969年福特野马”旅行500英里,但您可能只愿意为“飞杆”行驶20英里。

我正在尝试找出最佳类型的查询及其结构,以便我们可以说出以下内容。

1。)取出所有后续短语并从距离小于或等于最大距离的文档中拉回结果。

我可以关注这些短语。

短语:1969年Ford Mustang
距离:800英里

短语:Fly Rod
距离:20英里

短语:2015 F-150
距离:300英里

我们正在尝试使用单个ElasticSearch查询来撤回所有结果。有没有人有一个如何做这样的事情的例子?我试图使用QueryString,但这不允许你按距离过滤或做任何类型的分页,这两者都是一个要求。

我也尝试了一个multi_match,但是会对单词进行OR操作,所以如果我关注'Fly Rod'它会返回带有'Hot Rod'的文件而我们不希望这样。它似乎返回它们,因为multi_match在查询关键字上使用OR。

这是在向全世界发布网站之前的最后一个主要障碍,但是通过查看所有不同的查询类型,我无法看到它将如何完成。

如果有人有一个如何用ElasticSearch完成这样的事情的例子,我会很感激方向/反馈。我不害怕阅读文档或教程我只是无法找到与此情况相关的任何内容。

我们需要在查询中使用距离和短语。我可以看到这个工作的唯一方法是对每个后续短语进行单一查询,但出于性能原因这是不可接受的。我可以很容易地遵循100-1000个短语,即使ES非常快,很多查询也会花费太多网络时间来提高性能。

0 个答案:

没有答案