有没有办法使用弹性搜索搜索位于另一个多边形内的多边形?
如果没有,是否可以使用 Solr 或其他系统?
在 Elasticsearch 上完全可以:
我只是在考虑自己实现它,我唯一担心的是在高流量站点上的性能,所以我们会看看会发生什么。
由于这篇文章是不久前发布的,因此知道您最终做了什么会很有趣...
很确定这是不可能的 ES。
使用 Solr + 一些插件,我认为这是可能的,但我自己没有尝试过。看看https://github.com/spatial4j/spatial4j
地理空间感知的形状类形状:点、矩形、圆形、多边形(通过 JTS)形状相交逻辑,产生:不相交、包含、在、相交边界框面积计算
Solr 中似乎已经包含了 spatial4J。请参阅以下链接中的 David Smiley 的回复(Spatial4J 的作者和 Solr 的提交者) How to install spatial4j into solr4
有了 Solr 4.3,这才成为可能;几周前我刚刚完成了这项工作,我对此感到非常兴奋。要了解如何使用新的 Solr 4 空间字段,请参阅: http : //wiki.apache.org/solr/SolrAdaptersForLuceneSpatial4 新功能是您现在可以使用“IsWithin”和“Contains”谓词;还有“IsDisjointTo”。根据您的问题,我不清楚您想要哪些。想象一个由 3 部分组成的句子,其中第一/左部分是您的索引数据,然后是空间谓词,然后是您的查询形状。因此,如果要搜索查询形状内的索引形状,请使用“IsWithin”。我正要更新 wiki 以显示这些谓词。