我想添加一个过滤器 say 来显示包含 saytest
关键字的所有@log_name
和log
。我在 Kibana 仪表板上看到了以下字段。
- .log
- @log_name
- _id
- _指数
- 主机名
当我添加带有@log_name is test
的过滤器时,它不会返回任何结果,但是当我添加log is test
时,它会返回包含此关键字的所有值。
我也尝试了@log_name is *test*
和@log_name.keyword is *test*
,但我没有得到任何结果。我这里有以下三个问题:
1.如何添加返回@log_name
中包含test
的值的过滤器?
更新:我想出了通过编辑查询DSL添加通配符的方法。
{
"query": {
"wildcard": {
"@log_name": {
"value": "*test*"
}
}
}
}
为什么我能够搜索包含
test
而不是@log_name
log
?@fieldName、_fieldName、字段名称在 Kibana dashbaord 上是什么意思?
当您将文档索引到 Elasticsearch 时,它会创建一个映射来定义每个字段的类型(字符串或文本、长整型、关键字等(。当您查询要分析的文本字段时,您会搜索该字段的所有标记(通常是组成短语的单词(,因此您的日志文件肯定与此字段的标记"test"一词匹配。也许@log_name字段有其他配置,因此请查看映射。
一些可能有帮助的文档: https://www.elastic.co/guide/en/elasticsearch/reference/current/analysis-analyzers.html https://www.elastic.co/guide/en/elasticsearch/reference/current/mapping.html
我不太确定您对第三个问题的意思,因为所有这些都取决于映射,字段的名称应该无关紧要。