我想在弹性搜索中搜索我的自定义评分脚本中是否存在字段。
此搜索有效:
{
"query": {
"custom_score": {
"script": "((doc['region'].value == '1') ? 1 : 0)",
"query": {
"constant_score": {
"filter": {
"and": [
{
"term": {
"id": "100"
}
}
]
}
}
}
}
},
"size": 1
}
如果区域字段值为1,它会将结果评分为1。
但是此查询不起作用:如果文档中不存在区域字段,它将不会将文档评分为1:
{
"query": {
"custom_score": {
"script": "((doc['region'].value == null) ? 1 : 0)",
"query": {
"constant_score": {
"filter": {
"and": [
{
"term": {
"id": "100"
}
}
]
}
}
}
}
},
"size": 1
}
如何检查脚本中的缺失值?
答案 0 :(得分:14)
如果此字段具有数字类型(包括索引为long的日期),则缺失值由0表示。