最近有个小需求需要统计下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’’’]里面是用单引号包含一个转义的单引号。
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态