首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >击穿场值

击穿场值
EN

Stack Overflow用户
提问于 2018-11-19 06:47:55
回答 1查看 51关注 0票数 0

我在Elasticsearch中有以下示例文档

代码语言:javascript
复制
[
  {
    "_index": "beatbox-2018.11.19",
    "_source": {
      "connection": "10",
      "user": "op-dashboard",
      "key": "monolith_connection_sniffer"
    }
  },
  {
    "_index": "beatbox-2018.11.19",
    "_source": {
      "connection": "10",
      "user": "op-dashboard",
      "key": "monolith_connection_sniffer"
    }
  }
]

当我查询用户时,我得到了预期的结果。

代码语言:javascript
复制
curl -X GET \
  'http://127.0.0.1:9200/beatbox-2018.11.19/_search?q=user:op-dashboard'

In Grafana:

我试图为用户字段添加一些带有变量的查询。

代码语言:javascript
复制
{   "find": "terms",   "field": "user" }

但是我得到了用户字段的标记值。

代码语言:javascript
复制
`op`, `dashboard`

在后台,下面的有效负载正在发送查询

代码语言:javascript
复制
{
  "size": 0,
  "query": {
    "bool": {
      "filter": [
        {
          "query_string": {
            "analyze_wildcard": true,
            "query": "*"
          }
        }
      ]
    }
  },
  "aggs": {
    "1": {
      "terms": {
        "field": "user",
        "size": 500,
        "order": {
          "_term": "asc"
        }
      }
    }
  }
}

查询返回标记结果。我怎么才能阻止它?

我已经尝试过使用以下模板

代码语言:javascript
复制
{
  "index_patterns": [
    "beatbox*"
  ],
  "mappings": {
    "doc": 
      "properties": {
        "user": {
          "type": "text",
          "fielddata": true,
          "analyzer":"whitespace",
          "search_analyzer": "whitespace"
        }
      }
    }
  }
}

也有分析器

代码语言:javascript
复制
{
  "index": {
    "analysis": {
      "default": {
        "analyzer": {
          "analyzer_keyword": {
            "tokenizer": "whitespace"
          }
        }
      }
    }
  }
}

索引的映射:

代码语言:javascript
复制
{
   "beatbox-2018.11.19":{
      "mappings":{
         "doc":{
            "_all":{
               "enabled":false
            },
            "numeric_detection":true,
            "properties":{
               "connection":{
                  "type":"long"
               },
               "key":{
                  "type":"text",
                  "norms":false,
                  "index_options":"freqs"
               },
               "user":{
                  "type":"text",
                  "fielddata":true
               }
            }
         }
      }
   }
}

有什么帮助吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-19 09:49:44

在聚合数据类型时,您应该在Keyword字段中使用text数据类型的elasticsearch而不是text数据类型。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53369593

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档