elasticsearch - 如何在elasticsearch脚本中将字段与_id进行比较?
问题描述
{
"query":{
"bool":{
"must":{
"match_all":{
}
},
"filter":[
{
"script":{
"source":"doc['id'].value == doc['_id'].value",
"lang":"painless"
}
}
]
}
},
"track_total_hits":true
}
doc['_id'].value
导致错误的行也是如此。我应该如何将字段值与 _id 值进行比较?
在普通文档中,“ _ string
id”和“id”是long
,但我打破了一些,现在它们都是strings
,我怎么能找到它们?
解决方案
我认为您的id字段类型是关键字,所以;你不能doc['id'].value
没有.keyword
.
试试这个:
"script": {
"script": {
"source": "doc['id.keyword'].value == doc['_id'].value",
"lang": "painless"
}
}
推荐阅读
- ruby-on-rails - 如何在不要求服务器端随机数的情况下停止 Braintree 存储 payment_methode?
- c - 如何在 C 中将字符串添加到 PUNICODE_STRING 的末尾
- javascript - 如何从模型中数组属性中的对象属性中查找文档
- r - R中实现的H2O AutoML(3.24.0.5)中多类分类的“metalearner”问题
- java - 尝试设置 Spring Boot Rest 测试时出现 sun.reflect.annotation.TypeNotPresentExceptionProxy 异常
- ios - 如果 UISearchDisplayController 已弃用,带有搜索显示控制器的搜索栏有什么好处?
- python-3.x - 如何按键值对 Python 字典进行排序
- c# - 身份验证 Azure AD 后将用户返回到请求的 URL
- java - 带数组的随机问题
- spring-cloud - spring cloud config propertySources“名称”已更改