Linux单双引号嵌套引发的小问题

 2023-09-05 阅读 67 评论 0

摘要:单双引号如何嵌套使用 最近有个小需求需要统计下ES中的文本结果,编辑和未编辑文本的占比,由于直接统计ES中的结果,这里直接写了个DSL查询脚本,初版脚本如下 curl -XGET 127.0.0.1:9200/esIndex/esType/_search?pretty -d '{ "query":

单双引号如何嵌套使用

最近有个小需求需要统计下ES中的文本结果,编辑和未编辑文本的占比,由于直接统计ES中的结果,这里直接写了个DSL查询脚本,初版脚本如下

curl -XGET 127.0.0.1:9200/esIndex/esType/_search?pretty -d '{
"query":{"bool":{"should":[{"range": {"createTime":{"gt":"2021-05-15 00:00:00","lt":"2021-05-25 00:00:00"}}}],"must":[{"script":{"script":"doc['createTime'].value != doc['updateTime'].value"}},{"exists":{"field":"orderId"}}]}}
}'

上面的脚本在kibana上运行正常,但是在linux服务上运行的时候的时候报错如下

从上面的错误信息,是把createTime当作一个变量了,而createTime未定义从而导致报错。实际上只需要对脚本里面的单引号进行转义就ok了,转写之后的脚本如下

curl -XGET 127.0.0.1:9200/esIndex/esType/_search?pretty -d '{
"query":{"bool":{"should":[{"range": {"createTime":{"gt":"2021-05-15 00:00:00","lt":"2021-05-25 00:00:00"}}}],"must":[{"script":{"script":"doc['\''createTime'\''].value != doc['\''updateTime'\''].value"}},{"exists":{"field":"orderId"}}]}}
}'

doc[’’‘createTime’’’]里面是用单引号包含一个转义的单引号。

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/772.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息