2016-08-03 74 views
2

我试图在Elastic Search上的_score字段上运行一个聚合查询,但没有结果。似乎不可能使用_score字段,也许是因为它不是文档的一个字段。我如何汇总_score?如何汇总_score

这是我的查询:

{ 
    "_source": false, "explain": false, "from": 0, "size": 0, 
    "aggs" : { 
    "score_ranges" : { 
     "range" : { 
      "field" : "_score", 
      "ranges" : [ 
      { "to" : 50 }, 
      { "from" : 50, "to" : 75 }, 
      { "from" : 75 } 
      ] 
     } 
     } 
    }, 
    "query": { 
    "function_score": { 
     "query": { 
     "match_all": { } 
     } 
    } 
    } 
} 

回答

1
"aggs": { 
    "scores_histogram": { 
     "histogram": { 
     "script": "return _score.doubleValue() * 10", 
     "interval": 3 
     } 
    } 
    } 

,或者与ranges

"aggs": { 
    "score_ranges": { 
     "range": { 
     "script": "_score", 
     "ranges": [ 
      { 
      "to": 50 
      }, 
      { 
      "from": 50, 
      "to": 75 
      }, 
      { 
      "from": 75 
      } 
     ] 
     } 
    } 
    } 

而且你需要启用动态脚本。