2016-11-07 3 views
0

I Suchergebnisse produziert von Elasticsearch haben wie folgt:in Elasticsearch

query: Apfelkuchen

1. title: apple pie, score: 144.67503 
2. title: apple pie, score: 128.19138 
3. title: apple, score: 59.768208 
4. title: apple, score: 39.49909 
5. title: red apple, score: 34.314064 
6. title: apple red, score: 34.014064 

Ich möchte folgendes haben:

1. title: apple pie, score: 144.67503 
2. title: apple, score: 59.768208 
3. title: red apple, score: 34.314064 
4. title: apple red, score: 34.014064 

Wie kann ich das in Elasticsearch machen? Es wäre toll, wenn man die Antwort in DSL bekommt.

Antwort

0
{ 
    "size": 0, 
    "query": { 
     "term": { 
     "title": { 
      "value": "apple pie" 
     } 
     } 
    }, 
    "aggs": { 
     "titleAgg": { 
     "terms": { 
      "field": "title", 
      "order": { 
       "scoreAgg": "desc" 
      } 
     }, 
     "aggs": { 
      "scoreAgg": { 
       "max": { 
        "script": "_score" 
       } 
      } 
     } 
     } 
    } 
} 

Diese Abfrage wird Ihr Titel in Schlüsseln geben und Ergebnis unter scoreAgg Aggregation als Wert

+0

Ich frage mich, wie kann ich diese Aggregation Abfrage in einer Pipeline hinzufügen, wo die Partitur von function_score erzeugt wird . – misbah