在Elasticsearch中按半径定义边界框

时间:2014-09-25 11:43:21

标签: solr lucene elasticsearch geospatial bounding-box

我正在将应用程序从Solr迁移到Elasticsearch。

此应用程序提供反向地理定位:返回给定坐标集的N个最近点。

在Solr中,这很大程度上由using a bounding_box优化,然后在该框内对结果进行排序(从1-2秒到50ms),this discussion on github更深入地解释。

我想在ES中实现相同的功能,因为简单的geo_distance过滤器也让我在ES中的结果很慢。

当Solr向我询问中心点和半径(例如5公里)时,ES needs the coordinates of the bounding_box

计算这些值比计算半径更复杂,让一些强大的工具自己计算bounding_box。

我想知道bouding_box的计算是由Solr还是Lucene完成的。 在后一种情况下,我可以期望ES提供对此功能的访问权限,但我无法在官方文档中或通过Google搜索找到任何内容。

如果我可以利用Elasticsearch或Lucene代码库,我想避免在我的应用中实现complex maths的开销。此外,它可能在Java中比在我的nodejs应用程序中更快地完成。

在ES上发出功能请求并重新开始重新启动之前,我会接受任何建议。

0 个答案:

没有答案