如何在 Kibana 中搜索数组的存在?
How to search for existence of array in Kibana?
我在 Kibana 中有一个字段,有时是字符串,有时是数组。
例如:
{ "fld1": "val1", "fld2": "val2"}
{ "fld1": "val3", "fld2": [ "val4", "val5" ] }
我想搜索包含 "fld2" 数组的文档。
我试过了:
{
"query": {
"bool": {
"filter": {
"script": {
"script": {
"source": "doc['fld2'].size > 0",
"lang": "painless"
}
}
}
}
}
}
我想你可以这样做:
"source": "if ((ctx._source.doc['fld2'] instanceof List})) { /* do something here */}",
Elastic 搜索脚本 return doc['fld2'] 值的字符串,您必须将其转换为数组以检查大小。
{
"query": {
"bool" : {
"filter" : {
"script" : {
"script" : {
"source": "def val = doc['fld2']; val.size() > 1",
"lang": "painless"
}
}
}
}
}
}
我在 Kibana 中有一个字段,有时是字符串,有时是数组。
例如:
{ "fld1": "val1", "fld2": "val2"}
{ "fld1": "val3", "fld2": [ "val4", "val5" ] }
我想搜索包含 "fld2" 数组的文档。
我试过了:
{
"query": {
"bool": {
"filter": {
"script": {
"script": {
"source": "doc['fld2'].size > 0",
"lang": "painless"
}
}
}
}
}
}
我想你可以这样做:"source": "if ((ctx._source.doc['fld2'] instanceof List})) { /* do something here */}",
Elastic 搜索脚本 return doc['fld2'] 值的字符串,您必须将其转换为数组以检查大小。
{
"query": {
"bool" : {
"filter" : {
"script" : {
"script" : {
"source": "def val = doc['fld2']; val.size() > 1",
"lang": "painless"
}
}
}
}
}
}