Elasticsearch 查询关键字值大于 X 的所有文档 [7.2]



我正在尝试查找名称长度超过 32 个字符的所有文档。

这是文档的映射。

export const boards = {
handle: {
type: "text"
},
name: {
type: "keyword"
},
};

我尝试使用无痛来查询字段的size,但尽管有,但以下查询没有返回任何结果。

查询

GET /_search
{
"query": {
"bool" : {
"filter" : {
"script" : {
"script" : {
"source": "doc['name'].size() > 32",
"lang": "painless"
}
}
}
}
}
}

我认为这可能与所使用的关键字类型有关。

我从这个论坛帖子中发现,使用关键字大小不是正确的方法。相反,您需要使用:.value.length()使我的最终查询如下所示:

{
"query": {
"bool" : {
"filter" : {
"script" : {
"script" : {
"source": "doc['name'].value.length() > 32",
"lang": "painless"
}
}
}
}
}
}

相关内容

最新更新