gpt4 book ai didi

elasticsearch - 查询数字字段匹配的字符串字段

转载 作者:行者123 更新时间:2023-12-02 23:25:29 26 4
gpt4 key购买 nike

我有一个ELK堆栈设置。当我在数字字段上执行查询时,它也会与字符串字段匹配。例如,我正在将负载均衡器日志发送到ELK,如果我在其上执行backend_processing_time:>5,则它也与值backend_processing_time0.001匹配。

在kibana界面上,显示查询与请求消息中的字符串匹配。我无法理解针对数字字段的查询如何与字符串匹配。

在kibana的开发工具部分中,我尝试运行相同的查询

GET _search
{
"query": {
"range" : {
"backend_processing_time" : {
"gte" : 50000000000
}
}
}
}

即使有这么多的backend_processing_time我也得到结果。我不明白为什么会这样。

我搜索了其他数字类型的字段,发现在数字字段上进行的所有查询都与字符串类型的字段匹配。

我提供的是 backend_processing_time:>500000000查询的示例搜索结果。从此结果可以看出,backend_processing_time字段很小,但仍然很受欢迎。
{
"_index": "logstash-2017.05.10",
"_type": "prod-quizelb-logs",
"_id": "AVvzYRgL49GPTZAKoDer",
"_score": null,
"_source": {
"backendport": 80,
"received_bytes": 0,
"request": "http://en.meaww.com:80/locales/en.json",
"backend_response": 200,
"verb": "GET",
"message": "2017-05-10T17:19:52.881044Z Prod-ELB 172.68.144.71:34803 10.1.91.253:80 0.000075 0.000606 0.000019 200 200 0 1881 \"GET http://en.meaww.com:80/locales/en.json HTTP/1.1\" \"Mozilla/5.0 (Linux; Android 6.0.1; SM-C900F Build/MMB29M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/58.0.3029.83 Mobile Safari/537.36 [FB_IAB/FB4A;FBAV/122.0.0.17.71;]\" - -\n",
"type": "prod-quizelb-logs",
"clientport": 34803,
"request_processing_time": 0.000075,
"urihost": "en.meaww.com:80",
"response_processing_time": 0.000019,
"path": "/locales/en.json",
"@timestamp": "2017-05-10T17:21:18.280Z",
"port": "80",
"response": 200,
"bytes": 1881,
"clientip": "172.68.144.71",
"proto": "http",
"@version": "1",
"elb": "Prod-ELB",
"httpversion": "1.1",
"backendip": "10.1.91.253",
"backend_processing_time": 0.000606,
"timestamp": "2017-05-10T17:19:52.881044Z"
},
"fields": {
"@timestamp": [
1494436878280
],
"timestamp": [
1494436792881
]
},
"highlight": {
"backend_processing_time.keyword": [
"@kibana-highlighted-field@6.06E-4@/kibana-highlighted-field@"
],
"request": [
"@kibana-highlighted-field@http@/kibana-highlighted-field@://@kibana-highlighted-field@en.meaww.com@/kibana-highlighted-field@:@kibana-highlighted-field@80@/kibana-highlighted-field@/@kibana-highlighted-field@locales@/kibana-highlighted-field@/@kibana-highlighted-field@en.json@/kibana-highlighted-field@"
],
"elb.keyword": [
"@kibana-highlighted-field@Prod-ELB@/kibana-highlighted-field@"
],
"urihost.keyword": [
"@kibana-highlighted-field@en.meaww.com:80@/kibana-highlighted-field@"
],
"verb": [
"@kibana-highlighted-field@GET@/kibana-highlighted-field@"
],
"request.keyword": [
"@kibana-highlighted-field@http://en.meaww.com:80/locales/en.json@/kibana-highlighted-field@"
],
"type": [
"@kibana-highlighted-field@prod@/kibana-highlighted-field@-@kibana-highlighted-field@quizelb@/kibana-highlighted-field@-@kibana-highlighted-field@logs@/kibana-highlighted-field@"
],
"message": [
"2017-05-10T17:19:@kibana-highlighted-field@52.881044Z@/kibana-highlighted-field@ @kibana-highlighted-field@Prod@/kibana-highlighted-field@-@kibana-highlighted-field@ELB@/kibana-highlighted-field@ 172.68.144.71:34803 10.1.91.253:@kibana-highlighted-field@80@/kibana-highlighted-field@ 0.000075 0.000606 0.000019 200 200 0 1881 \"@kibana-highlighted-field@GET@/kibana-highlighted-field@ @kibana-highlighted-field@http@/kibana-highlighted-field@://@kibana-highlighted-field@en.meaww.com@/kibana-highlighted-field@:@kibana-highlighted-field@80@/kibana-highlighted-field@/@kibana-highlighted-field@locales@/kibana-highlighted-field@/@kibana-highlighted-field@en.json@/kibana-highlighted-field@ @kibana-highlighted-field@HTTP@/kibana-highlighted-field@/1.1\" \"@kibana-highlighted-field@Mozilla@/kibana-highlighted-field@/5.0 (@kibana-highlighted-field@Linux@/kibana-highlighted-field@; @kibana-highlighted-field@Android@/kibana-highlighted-field@ @kibana-highlighted-field@6.0.1@/kibana-highlighted-field@; @kibana-highlighted-field@SM@/kibana-highlighted-field@-@kibana-highlighted-field@C900F@/kibana-highlighted-field@ @kibana-highlighted-field@Build@/kibana-highlighted-field@/@kibana-highlighted-field@MMB29M@/kibana-highlighted-field@; @kibana-highlighted-field@wv@/kibana-highlighted-field@) @kibana-highlighted-field@AppleWebKit@/kibana-highlighted-field@/@kibana-highlighted-field@537.36@/kibana-highlighted-field@ (@kibana-highlighted-field@KHTML@/kibana-highlighted-field@, @kibana-highlighted-field@like@/kibana-highlighted-field@ @kibana-highlighted-field@Gecko@/kibana-highlighted-field@) @kibana-highlighted-field@Version@/kibana-highlighted-field@/4.0 @kibana-highlighted-field@Chrome@/kibana-highlighted-field@/@kibana-highlighted-field@58.0.3029.83@/kibana-highlighted-field@ @kibana-highlighted-field@Mobile@/kibana-highlighted-field@ @kibana-highlighted-field@Safari@/kibana-highlighted-field@/@kibana-highlighted-field@537.36@/kibana-highlighted-field@ [@kibana-highlighted-field@FB_IAB@/kibana-highlighted-field@/@kibana-highlighted-field@FB4A@/kibana-highlighted-field@;@kibana-highlighted-field@FBAV@/kibana-highlighted-field@/122.0.0.17.71;]\" - -\n"
],
"urihost": [
"@kibana-highlighted-field@en.meaww.com@/kibana-highlighted-field@:@kibana-highlighted-field@80@/kibana-highlighted-field@"
],
"path": [
"/@kibana-highlighted-field@locales@/kibana-highlighted-field@/@kibana-highlighted-field@en.json@/kibana-highlighted-field@"
],
"verb.keyword": [
"@kibana-highlighted-field@GET@/kibana-highlighted-field@"
],
"proto.keyword": [
"@kibana-highlighted-field@http@/kibana-highlighted-field@"
],
"port": [
"@kibana-highlighted-field@80@/kibana-highlighted-field@"
],
"type.keyword": [
"@kibana-highlighted-field@prod-quizelb-logs@/kibana-highlighted-field@"
],
"proto": [
"@kibana-highlighted-field@http@/kibana-highlighted-field@"
],
"elb": [
"@kibana-highlighted-field@Prod@/kibana-highlighted-field@-@kibana-highlighted-field@ELB@/kibana-highlighted-field@"
],
"backend_processing_time": [
"@kibana-highlighted-field@6.06E@/kibana-highlighted-field@-4"
],
"port.keyword": [
"@kibana-highlighted-field@80@/kibana-highlighted-field@"
]
},
"sort": [
1494436878280
]
}

编辑

我通过在kibana控制台中运行 GET /logstash-2017.05.11/_mapping/prod-quizelb-logs查询来获取映射。

我为 backend_processing_time获取的映射显示了这个
  "backend_processing_time": {
"type": "text",
"norms": false,
"fields": {
"keyword": {
"type": "keyword"
}
}
}

因此,似乎该字段是文本类型,从而导致发生此错误。

现在我有另一个困惑,即kibana将其显示为 number,但是elasticsearch将其显示为 text类型。另外,这是动态映射的,因为我从来没有自己创建映射。我认为在应用grok过滤器时,它们是由logstash创建的。

最佳答案

您需要控制这些索引的映射,以便您的字段实际上是一个数字。否则,您将不确定在那里将具有哪种字段类型。因此,基本上,您需要在索引模板或静态映射中都这样的事情:

    "backend_processing_time": {
"type": "integer"
}

关于elasticsearch - 查询数字字段匹配的字符串字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43894558/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com