使用 Azure 认知搜索并指定 GeographyPoint 字段,如下所示:
[SearchableField(IsFilterable = true, IsSortable = true)]
public GeographyPoint geoPoint { get; set; }
他们像这样初始化它:
double lat = ...
double lng = ...
doc.geoPoint = GeographyPoint.Create(lat, lng);
返回错误(当使用CreateOrUpdateIndex方法时):
Azure.RequestFailedException:'请求无效。细节: 定义:可搜索字段“geoPoint”必须是类型 Edm.String 或集合(Edm.String).
文档表示支持 Edm.GeographyPoint 类型。 有谁知道这个错误的原因吗?
我们已经阅读了这个问题,我们的实施看起来是正确的。 我们正在使用 Azure 认知搜索 SDK 11。
我们预计索引的创建将与 GeographyPoint 字段一起使用。我们阅读了文档并检查了我们的方法,发现我们的实现没有错误。
Edm.GeographyPoint
数据类型,但此数据类型的字段不可搜索。仅可搜索具有 Edm.String
和 Collection(Edm.String)
数据类型的字段。这就是您收到此错误的原因。
请参阅此处的 REST API 文档:https://learn.microsoft.com/en-us/rest/api/searchservice/create-index#-field-definitions-。
要修复该错误,请使该字段不可搜索。