2

有没有办法使用弹性搜索搜索位于另一个多边形内的多边形?

如果没有,是否可以使用 Solr 或其他系统?

4

3 回答 3

2

在 Elasticsearch 上完全可以:

http://elasticsearch-users.115913.n3.nabble.com/Can-I-use-geo-polygon-filter-to-retrieve-hits-based-on-polygon-fields-td4044079.html

我只是在考虑自己实现它,我唯一担心的是在高流量站点上的性能,所以我们会看看会发生什么。

由于这篇文章是不久前发布的,因此知道您最终做了什么会很有趣...

于 2014-01-14T14:30:28.300 回答
1

很确定这是不可能的 ES。

使用 Solr + 一些插件,我认为这是可能的,但我自己没有尝试过。看看https://github.com/spatial4j/spatial4j

地理空间感知的形状类形状:点、矩形、圆形、多边形(通过 JTS)形状相交逻辑,产生:不相交、包含、在、相交边界框面积计算

Solr 中似乎已经包含了 spatial4J。请参阅以下链接中的 David Smiley 的回复(Spatial4J 的作者和 Solr 的提交者) How to install spatial4j into solr4

于 2013-04-18T12:46:26.213 回答
1

有了 Solr 4.3,这才成为可能;几周前我刚刚完成了这项工作,我对此感到非常兴奋。要了解如何使用新的 Solr 4 空间字段,请参阅: http : //wiki.apache.org/solr/SolrAdaptersForLuceneSpatial4 新功能是您现在可以使用“IsWithin”和“Contains”谓词;还有“IsDisjointTo”。根据您的问题,我不清楚您想要哪些。想象一个由 3 部分组成的句子,其中第一/左部分是您的索引数据,然后是空间谓词,然后是您的查询形状。因此,如果要搜索查询形状内的索引形状,请使用“IsWithin”。我正要更新 wiki 以显示这些谓词。

于 2013-04-18T17:39:30.617 回答