Kibana -多字段Map缺少文本突出显示

k2fxgqgv  于 2022-12-09  发布在  Kibana
关注(0)|答案(1)|浏览(126)

我正在试用ECS - Elastic Common Schema。我们需要突出显示文本搜索字段error.stack_trace。此字段是此处定义的多字段Map
我只是做了一个简单的测试运行Elasticsearch和Kibana 7.17.4一个字段定义为多字段和一个与单字段。

PUT simple-index-01
{
    "mappings": {
      "properties": {
        "stack_trace01": { "type": "text" },
            "stack_trace02": {
              "fields": {
                "text": {
                  "type": "text"
                }
              },
              "type": "wildcard"
            }
          }
        }
}

POST simple-index-01/_doc 
{ 
  "@timestamp" : "2022-06-07T08:21:05.000Z", 
  "stack_trace01": "java.lang.NullPointerException: null",
  "stack_trace02": "java.lang.NullPointerException: null"
}

不突出显示多个字段是否是Kibana的预期行为?

uyhoqukh

uyhoqukh1#

wildcard类型将无法使用全文查询进行搜索,如文档中所述(它是关键字类型系列的一部分):
wildcard字段类型是一个专门的关键字字段,用于计划使用类似grep的wildcardregexp查询搜索的非结构化机器生成内容。
因此,当您尝试使用下面的查询时,它不会返回结果,这就是为什么它不会在discover中突出显示您的stack_trace02字段的原因。

POST simple-index-01/_search
{
  "query": {
    "match": {
      "stack_trace02": "null"
    }
  }
}

但下面的查询将给予结果:

{
  "query": {
    "wildcard": {
      "stack_trace02": {
        "value": "*null*"
      }
    }
  }
}

您可以创建如下所示的索引Map,父类型字段应为text类型:

PUT simple-index-01
{
  "mappings": {
    "properties": {
      "stack_trace01": {
        "type": "text"
      },
      "stack_trace02": {
        "fields": {
          "text": {
            "type": "wildcard"
          }
        },
        "type": "text"
      }
    }
  }
}

现在,当您要搜索通配符类型的查询时,可以使用stack_trace02.wildcard
已经有类似行为的开放issue,但它不是针对wildcard类型。

相关问题