我在字段中有特殊字符的数据!当我添加这些数据,然后它插入ElasticSearch正确!但在更新时,它给出了错误!
POST index_name/_update_by_query
{
"script": {
"source": "ctx._source.key1='vakey22'",
"lang": "painless"
},
"query": {
"bool": {
"must": [
{"term":{"condtion1":"value1"}}
]
}
}
}
然后它工作得很完美,但是当我们尝试添加任何特殊字符时,它就会出错
POST index_name/_update_by_query
{
"script": {
"source": "ctx._source.key1='vak\ey22'",
"lang": "painless"
},
"query": {
"bool": {
"must": [
{"term":{"condtion1":"value1"}}
]
}
}
}
添加任何特殊字符时出现以下错误
[script\u exception]编译错误,{script\u stack={0=“。。。ctx.\u source.key1='';ctx.\u source.key2…&1=“^----here”}&script=“ctx.\u source.key3=”0'
怎么解决?
1条答案
按热度按时间j13ufse21#
我认为问题是因为你发布的是json,你需要转义你的转义字符(也就是
\
). 所以为了逃避特殊的角色\\
为了得到一个真正的反斜杠,你应该写\\\\
. 这个github问题讨论了一些类似的东西,尽管在不同的上下文中有点类似。所以你的查询是这样的: