Int*_*rer 12 elasticsearch elasticsearch-dsl elastic-stack
我正在尝试过滤 Kibana 以查找包含字符串“pH”的字段。该字段称为extra.monitor_value_name. 潜在值的示例有Temperature_ABC01、DO_ABC01、 或pH_ABC01。
Kibana 的 Elasticsearch Query DSL 似乎没有“包含字符串”,因此我需要自定义查询。
我是 Query DSL 的新手,您能帮我创建查询吗?
另外,将其称为 Query DSL 是否合适?我什至不确定措辞是否正确。
Int*_*rer 12
好的!回过头来回答我自己的问题。
我最初的问题源于不了解field_namevs field_name.keyword。有关关键字的信息,请阅读此处:What's the Difference Between the 'field' and 'field.keyword' fields in Kibana?
解决方案1
这是我最终使用的查询。我使用了正则表达式查询。我发现这篇文章对于弄清楚正则表达式的语法很有用:
{
"query": {
"regexp": {
"extra.monitor_value_name.keyword": "pH.*"
}
}
}
Run Code Online (Sandbox Code Playgroud)
解决方案2
我可以在没有 Query DSL 的情况下进行过滤的另一种方法是在搜索字段中输入:extra.monitor_value_name.keyword:pH*。值得注意的一件有趣的事情是,.keyword这种方法似乎没有必要。我不知道为什么。
小智 8
使用 Elasticsearch Query DSL 在过滤器中尝试以下操作:
{
"query": {
"wildcard": {
"extra.monitor_value_name": {
"value": "pH.*"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
41291 次 |
| 最近记录: |