【问题标题】:Searching by polygon returning incorrect results按多边形搜索返回不正确的结果
【发布时间】:2016-09-16 00:11:37
【问题描述】:

我正在尝试在 AzureSearch 中的多边形内进行搜索。我正在使用下面的过滤器。我的搜索返回结果,但在 -2.54321666666667、60.6914166666667 处缺少一个点,在 -2.5437833333333333 处找到一个点, 60.691433333333336。两个都不对吧???

$filter=(geo.intersects(BeginningPoint, geography'POLYGON((-2.54321 60.6913,-2.54323 60.6913,-2.54323 60.6915,-2.54321 60.6915,-2.54321 60.6913))')&$count=true

为了便于查看,以下几点是: -2.54321 60.6913, -2.54323 60.6913, -2.54323 60.6915, -2.54321 60.6915, -2.54321 60.6913

【问题讨论】:

    标签: azure-cognitive-search


    【解决方案1】:

    您的点需要逆时针定义,而不是顺时针。 这些点-2.54321 60.6913 (bottom right), -2.54323 60.6913 (bottom left), -2.54323 60.6915 (top left), -2.54321 60.6915 (top right), -2.54321 60.6913 (bottom right) 是顺时针定义的,因此翻转它们很有帮助。

    【讨论】:

      【解决方案2】:

      看来您必须按顺时针顺序定义多边形才能捕获该区域的内部。因此,当我反转第 2-4 点时,它开始返回正确的子集。

      我对最初的搜索仍然有些困惑,因为它返回了几百个点(远低于我索引中的总剩余数),但我现在没有时间进一步试验。

      【讨论】:

        猜你喜欢
        • 2015-02-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-05-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多