es聚合統計結果的被分詞問題

最近公司做電商項目,需要用到搜索引擎,選擇的elasticsearch做站內搜索,其中聚合統計商品分類的時候遇到聚合結果被分詞的現象特定記錄一下:

es聚合被分詞的現象一般是6.x版本的(以前的版本沒用過)

es6.x後對於text類型字段需要聚合查詢(類似group by)對數據進行統計分析,需要設置fielddata爲true 和fields字段才能進行聚合操作。並且將fields的type設置爲keywords
 

字段索引結構

 "categoryName": {
              "type": "text",
              "analyzer": "ik_max_word",
              "search_analyzer": "ik_max_word",
              "fielddata" : true,
              "fields": {"raw": {"type": "keyword"}}#如果不設置keyword索引在聚合時將會使用已分解後的詞
}   
 

查詢時候請求參數

body = {
            "query": {
                "range": {
                        "time": {
                                "gte": '2018-02-01'
                                }
                        }
                    },
            "aggs": {
                "institution_count": {
                    "terms": {"field": "categoryName.raw"},#使用keyword分組
                    "aggs": {
                            }
                        }
                    }
            }

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