Elasticsearch为最接近的双重匹配

时间:2015-09-23 08:19:11

标签: elasticsearch

我的数据由20个值组成:13个双打,6个整数和一个字符串,pr.row。 搜索是在13个双打中进行的。 我需要找到最接近10行的输入13。 我需要快速(小于或等于1毫秒)。 我存储的数据大约是200000行。 一切都需要在一台机器上执行。

我可以使用MySQL和精确搜索实现高速(每个查询<1ms)。当我试图在MySQL中寻找最接近的时候,每个查询需要大约20ms,这对我的应用来说太慢了。

在这种情况下是否可以使用elasticsearch?能不能给我&lt; = 1ms?

1 个答案:

答案 0 :(得分:0)

Elasticsearch无法帮助您优化问题,除非您可以快速识别附近记录的一小部分(例如使用局部敏感哈希),以使您的欧几里德距离计算更便宜。

以下是对不同kNN近似值的良好讨论:Nearest neighbors in high-dimensional data?

白皮书:http://web.mit.edu/andoni/www/papers/cSquared.pdf

一旦您对数据进行了哈希处理,并且哈希码被编入索引,那么它在MySQL或Elasticsearch中是否可能无关紧要,因为您可以快速将初始选择范围缩小到数据点的小邻域而不是计算整个200,000的欧几里德距离。