具有自相交多边形的Solr空间搜索

时间:2013-07-12 11:08:04

标签: search solr polygon spatial intersection

我正在使用Solr 4.3.0以及JTS和spatial4j的最新版本。作为我schema.xml中的字段类型,我使用“location_rpt”,就像文档中的描述一样。 Documentation

<field name="standort" type="location_rpt" indexed="true" stored="true" />

现在我的应用程序创建了一个类似这样的FilterQuery

standort:"IsWithin (POLYGON((16.243972778320312 48.27016879304729, 16.411170959472656 48.268340583150504, 16.44275665283203 48.19058119922813, 16.32396697998047 48.15921534239267,16.243972778320312 48.27016879304729)))
一切正常。我的问题是当我尝试使用更复杂的多边形(自相交)时,Solr只显示如下错误:

org.apache.solr.common.SolrException: com.spatial4j.core.exception.InvalidShapeException: Self-intersection at or near point (16.315572194579204, 48.26688289499306, NaN)

相应的查询如下所示:

standort:"IsWithin (POLYGON((16.253585815429688 48.27748097861045, 16.506271362304688 48.23427822033628, 16.418380737304688 48.18646123261718, 16.286544799804688 48.28958948415696,16.253585815429688 48.27748097861045)))"

Screen of the Polygon

是否有任何变通方法可以让自相交的polgyon查询工作?

1 个答案:

答案 0 :(得分:0)

不,不是真的。您可以在客户端上使用JTS来清理多边形,这样当Solr得到它时,它就是有效的。见http://tsusiatsoftware.net/jts/jts-faq/jts-faq.html#G