【问题标题】:Azure Search service gives error "Expected a JSON object, array or literal" on spatial queryAzure 搜索服务在空间查询中给出错误“预期为 JSON 对象、数组或文字”
【发布时间】:2018-02-20 10:14:40
【问题描述】:

我正在尝试使用 Azure 搜索服务来查询基于空间数据的数据。 我想根据地理位置过滤数据。在搜索资源管理器中尝试的查询是search=*&$filter=geo.distance(geolocation, geography'POINT(9.2869001 47.3532887)') le 50

为地理位置字段定义的类型是 Ed.GeographyPoint 并且属性集是可过滤和可检索的

但我没有得到结果,而是在结果窗口中收到消息“预期为 JSON 对象、数组或文字”。 查询有什么问题在这里。 我正在使用 Azure 的标准计划,使用的 API 版本是 API 版本:2016-09-01

【问题讨论】:

  • 在有人说“阅读文档”之前,docs 中的示例是:$filter=geo.distance(location, geography'POINT(-122.131577 47.678581)') le 10,基本相同:D
  • 如果 $ 被删除,那么整个数据都会作为结果出现。没有过滤。
  • 是的,$ 是强制性的。 OData 过滤器始终是 $filter。

标签: azure geospatial azure-cognitive-search spatial-query


【解决方案1】:

您的地理位置字段是否具有类似于以下的格式?

"location": { "type": "Point", "coordinates": [ -121.355, 47.71 ], "crs": { "type": "name", "properties": { "name": "EPSG:4326" } } }

【讨论】:

  • 我在 Azure 门户的搜索资源管理器中尝试了查询。
  • 你的geolocation字段类型是Edm.GeographyPoint吗?它有什么属性?
  • 类型是 Ed.GeographyPoint 并且属性集是可过滤和可检索的
猜你喜欢
  • 1970-01-01
  • 2019-07-16
  • 2021-07-17
  • 1970-01-01
  • 2021-12-17
  • 2022-10-17
  • 1970-01-01
  • 2019-10-19
  • 1970-01-01
相关资源
最近更新 更多