使用JSON文件向Vespa导入文档失败,返回400错误求助
Vespa导入JSON文档返回400错误排查方案
检查JSON格式合法性
确保feed.json无语法错误,比如引号不匹配、逗号缺失/冗余。可以用jsonlint工具快速验证:jsonlint feed.json同时确认字段值类型与schema定义完全匹配,比如schema定义为
int类型的字段,JSON中不能传入字符串值。核对Schema(neighbors.sd)定义
- 检查JSON中的字段名、嵌套结构是否与schema完全一致,注意大小写敏感。
- 确认schema中标记为
required的字段,在feed.json中都已提供有效值。 - 如果使用了自定义数据类型或枚举,确保JSON中的值符合约束。
验证services.xml配置
- 确认content cluster的文档类型配置与schema名称一致,无拼写错误。
- 检查feed请求的endpoint是否指向正确的cluster地址,避免请求到错误的服务节点。
解析错误提示信息
400错误的返回内容通常包含具体问题描述,比如:Invalid JSON syntax at position 123
Missing required field 'user_id'
Value 'abc' for field 'age' is not a valid integer
根据提示直接定位问题,针对性修正feed.json或配置文件。检查Feed请求格式
确保请求头包含正确的Content-Type,且请求路径参数与配置匹配。示例curl命令:curl -H "Content-Type: application/json" -X POST \ http://localhost:8080/document/v1/myapp/neighbors/docid/123 \ -d @feed.json注意替换
myapp(命名空间)、neighbors(文档类型)、123(文档ID)为实际配置值。
内容的提问来源于stack exchange,提问作者Kaushal Singh
相关产品推荐
相关产品推荐

