在发送给Vespa之前,应该从文档中剥离ASCII控制字符吗?

时间:2019-01-04 18:57:56

标签: vespa

我正在尝试使用字符串字段将文档存储到Vespa中。使用document-api http端点时,它会因为解析错误而被拒绝。我已验证发送了正确的JSON(其他文档运行正常)。

这是我看到的错误消息:

PARSER_ERROR Error in document 'id:x:y:n=1:1FVzo2l7mMLticB0WMkBKIECMLzAg' - could not parse field 'content' of type 'string': The string field value contains illegal code point 0xB

我可以看到com.yahoo.text.Text中有对这些字符(在我的情况下为垂直制表符){​​{1}}的检查,但是我在文档中没有发现应该删除这些字符的地方在发送给Vespa之前。实际上,我看到了相反的情况,Vespa将竭尽全力在后台替换某些字符而不拒绝它们。

2 个答案:

答案 0 :(得分:2)

请在送入文件之前从文件中去除ASCII控制字符。

我将更新文档,尽管似乎JSON spec说必须转义这些控制字符,所以在提要中隐式不允许使用这些字符

答案 1 :(得分:1)

  

我看到了相反的情况,Vespa将竭尽全力替换幕后的某些字符

您在哪里看到这个?

有一个Text.stripInvalidCharacters实用程序方法作为Java客户端的实用程序提供,该客户端需要从未清除的文本中剥离字符。