我想添加一个过滤器说以显示所有包含说@log_name
关键字的log
和test
。我在Kibana仪表板上看到以下字段。
当我使用@log_name is test
添加过滤器时,它不会返回任何结果,但是当我添加log is test
时,它将返回包含该关键字的所有值。
我也尝试了@log_name is *test*
和@log_name.keyword is *test*
,但没有得到任何结果。我在这里有以下三个问题:
1。如何在test
中添加返回包含@log_name
的值的过滤器?
更新:我想出了通过编辑查询DSL添加通配符的方法。
{
"query": {
"wildcard": {
"@log_name": {
"value": "*test*"
}
}
}
}
为什么我可以搜索包含log
而不是test
的{{1}}?
@ fieldName,_fieldName,fieldName在Kibana dashbaord上是什么意思?
答案 0 :(得分:0)
当您将文档索引到Elasticsearch时,它将创建一个映射,该映射定义每个字段的类型(字符串或文本,long,关键字等)。当查询一个被分析的文本字段时,您首先搜索该字段的所有标记(通常是组成短语的单词),因此,您的日志文件肯定与带有该字段标记的单词“ 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
我不太确定您对第三个问题的意思,因为所有这一切都取决于映射,字段名称应该无关紧要。