2016-08-03 9 views
2

Ich habe versucht, eine Aggregatabfrage über das _score-Feld auf Elastic Search ohne Ergebnisse auszuführen. Scheint, dass es nicht möglich ist, das _score-Feld zu verwenden, möglicherweise weil es kein Feld des Dokuments ist. Wie kann ich über den _Score aggregieren?Wie kann ich aggregieren über die _score

Dies ist meine Frage:

{ 
    "_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": { } 
     } 
    } 
    } 
} 

Antwort

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

oder mit ranges:

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

Und müssen Sie dynamischen Scripting ermöglichen.

Verwandte Themen