我正在尝试为包含字符串“pH”的字段过滤 Kibana。该字段名为 extra.monitor_value_name
.潜在值的示例是 Temperature_ABC01
, DO_ABC01
, 或 pH_ABC01
.
Kibana 的 Elasticsearch Query DSL 似乎没有“包含字符串”,所以我需要自定义查询。
我是 Query DSL 的新手,你能帮我创建查询吗?
另外,将其称为 Query DSL 是否合适?我什至不确定正确的措辞。
最佳答案
好的!回过头来回答我自己的问题。
我最初的问题源于不知道 field_name
对比 field_name.keyword
.在此处阅读有关关键字的信息:What's the difference between the 'field' and 'field.keyword' fields in Kibana?
解决方案 1
这是我最终使用的查询。我使用了正则表达式查询。我找到了 this article有助于找出正则表达式的语法:
{
"query": {
"regexp": {
"extra.monitor_value_name.keyword": "pH.*"
}
}
}
解决方案 2
我可以在没有 Query DSL 的情况下进行过滤的另一种方法是在搜索字段中输入:
extra.monitor_value_name.keyword:pH*
.需要注意的一件有趣的事情是
.keyword
这种方法似乎没有必要。我不知道为什么。
关于elasticsearch - 使用 Query DSL 查询字段是否包含字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55146006/