当我执行此请求时,我可以获取索引的映射:
GET /users
它返回此:
{
"user":{
"mappings":{
"skill":{
"properties":{
...
"Rouge":{
"type":"float"
},
"Ruby":{
"type":"float"
},
"Rust":{
"type":"float"
},
"SAS":{
"type":"float"
},
"SASS":{
"type":"float"
},
"SCSS":{
"type":"float"
},
...
"settings":{
"index":{
"creation_date":"1584415338201",
"number_of_shards":"5",
"number_of_replicas":"0",
"provided_name":"user"
}
}
}
}
}
}
}
问题是,某些字段为空,我想找到它们。
例如,没有人对Ruby有价值。如果我可以专门搜索某个字段以查看其是否为空/空,则可以这样做,但是我需要查询以查找所有空字段,但是不幸的是,我找不到在线任何内容。
当然,我可以获取所有字段并对所有字段运行空检查查询,但这可能不是一个好主意。你知道如何做得更好吗?
我正在使用6.8版。
我认为您可以aggregations
用来实现这一目标,我知道这不是一个简单的解决方案,您需要编写所有字段名称。但这会有所帮助。
GET users/_search
{
"size": 0,
"aggs": {
"Rouge": {
"value_count": {
"field": "Rouge"
}
},
"Ruby": {
"value_count": {
"field": "Ruby"
}
},
"Rust": {
"value_count": {
"field": "Rust"
}
},
"SAS": {
"value_count": {
"field": "SAS"
}
},
"SASS": {
"value_count": {
"field": "SASS"
}
},
"SCSS": {
"value_count": {
"field": "SCSS"
}
}
}
}
如果其中之一没有值,它将显示为"value": 0
,例如:
{
"took": 1,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"skipped": 0,
"failed": 0
},
"hits": {
"total": 1,
"max_score": 0,
"hits": []
},
"aggregations": {
"Ruby": {
"value": 0
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句