Fielddata is disabled on text fields by default(keyword 可避免錯誤)

用Elasticsearch作爲後臺數據的存儲,kibana用來前端的報表展示。Logstash在其過程中擔任搬運工的角色,它爲數據存儲,報表查詢和日誌解析創建了一個功能強大的管道鏈。

用logstash把統計各項API的運行情況的日誌拿過來,存儲到Elasticsearch,在Elasticsearch建立索引,日誌中的headers、response各個屬性值都被放到了_source中,在kibana也可以看到這些字段

但是使用聚合的時候就會報錯:

  "aggs": {
                            "group_by_uri": {
                                "terms": {
                                    "field": "api.upstream_url",
                                    "size": 1000
                                }
                            }
                        }

"error": {
    "root_cause": [
      {
        "type": "illegal_argument_exception",
        "reason": "Fielddata is disabled on text fields by default

按網上的說法是要

聚合前

PUT megacorp/_mapping/employee/
{
  "properties": {
    "interests": { 
      "type":     "text",
      "fielddata": true
    }
  }
}
其實也可不用,,

直接把我們的那個field後面加上keyword就可以正確執行了

"field": "api.upstream_url.keyword"


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章