C# .NET Core 3.1调用Azure Search创建索引抛请求无效异常如何解决?
错误原因及解决方案
核心错误
- 你给布尔类型的
ParkingIncluded字段错误添加了[IsSearchable]特性:IsSearchable仅支持字符串类型字段,用于标识该字段可进行全文检索,布尔值类型不支持该配置,直接删除该特性即可修复这个问题。
其他可能导致报错的问题
LastRenovationDate字段未配置任何Azure Search特性也未标记忽略:FieldBuilder.BuildForType会默认把类的所有公共属性转换为索引字段,无任何特性标记的字段会生成不符合校验规则的配置,你可以根据需求添加[IsFilterable]/[IsSortable]等特性,或者添加[JsonIgnore]特性让该字段不被加入索引定义。GeographyPoint类型引用错误:请确保你引用的是Microsoft.Azure.Search.Models.GeographyPoint,而非System.Spatial命名空间下的同名类型,两者序列化规则不同会导致字段定义无效。- 旧版SDK兼容性问题:你使用的
Microsoft.Azure.Search是已经停止维护的旧版SDK,建议迁移到官方当前推荐的Azure.Search.Documents包,新版SDK对.NET Core 3.1兼容性更好,错误提示也更明确。
调试技巧
你可以捕获异常输出详细的错误信息,快速定位具体问题:
try { ssc.Indexes.Create(definition); } catch (Microsoft.Rest.Azure.CloudException ex) { // 这里会输出明确的字段错误说明,比如哪个字段的配置不符合要求 Console.WriteLine(ex.Body.Message); }
内容的提问来源于stack exchange,提问作者rwlndshprd
相关产品推荐
相关产品推荐

