使用elasticsearch搜索多边形内的多边形

时间:2013-04-17 22:27:33

标签: ruby-on-rails elasticsearch

有没有办法使用elasticsearch搜索另一个多边形内的多边形?

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

3 个答案:

答案 0 :(得分:2)

Elasticsearch上完全可能:

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

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

正如这篇文章不久之前,了解你最终做的事情会很有趣......

答案 1 :(得分:1)

非常确定ES不可能。

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

  

地理空间1知道的形状类形状:点,矩形,   圆,多边形(通过JTS)形状交叉逻辑,产生:   不相交,包含,内,交叉边界框区域计算

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

答案 2 :(得分:1)

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