2016-06-29 4 views
2

Basis auf der official document, scheint es wie kann nur auf die Single-Bucket-Aggregation sortieren. Wie kann ich die Ergebnisse nach 'avg' in der Anzahl der Buckets aggregieren?Wie kann ich Aggregations-Buckets nach metrischen Ergebnissen sortieren?

Ich fügte 'Auftrag' in 'result_1' noch nicht arbeiten hinzu. Es zeigt Fehler unter:

TransportError(500, u'search_phase_execution_exception') 
Invalid terms aggregation order path [reverse>condi_range>statistic_score.avg]. 
Terms buckets can only be sorted on a sub-aggregator path that is built out of zero or more single-bucket aggregations within the path and a final single-bucket or a metrics aggregation at the path end. 
Sub-path [reverse>condi_range] points to non single-bucket aggregation') 

Der entscheidende Punkt ist, dass i den Bereich begrenzen, muss auf ‚float_field‘ und die range aggregation ist eine andere Eimer Aggregation.

Hat jemand eine Idee?

Danke!

Codebeispiel:

{ 
    "aggs": { 
    "condi_nested": { 
     "aggs": { 
     "filtered": { 
      "filter": { 
      "bool": {} 
      }, 
      "aggs": { 
      "result_1": { 
       "terms": { 
       "field": "Foo", 
       "size": 100000000, 
       "order": { 
        "reverse>condi_range>statistic_score.avg": "desc" 
       } 
       }, 
       "aggs": { 
       "reverse": { 
        "aggs": { 
        "condi_range": { 
         "range": { 
         "ranges": [ 
          { 
          "to": 100, 
          "from": 0 
          } 
         ], 
         "field": "float_field" 
         }, 
         "aggs": { 
         "percentile_score": { 
          "percentiles": { 
          "field": "float_field" 
          } 
         }, 
         "statistic_score": { 
          "extended_stats": { 
          "field": "float_field" 
          } 
         } 
         } 
        } 
        }, 
        "reverse_nested": {} 
       } 
       } 
      } 
      } 
     } 
     }, 
     "nested": { 
     "path": "nested_path_of_Foo" 
     } 
    } 
    } 
} 

Antwort

0

ich nur entscheiden, wo das Problem ist.

Use 'Filter' ersetzen 'Reichweite'

{ 
    "aggs": { 
    "condi_range": { 
     "filter": { 
     "range": { 
      "float_field": { 
      "gte": 0, 
      "lte": 100 
      } 
     } 
     }, 
     "aggs":{ 
     ...blahblahblah... 
     } 
    } 
    } 
} 

aber ich fand ein weiteres Problem nach dem Problem, das ich gefragt.

Ich kann das Feld nach verschachtelten Aggregationen nicht sortieren, den gleichen Fehler in der Frage angezeigt.

Hier ist die Probe:

{ 
    "aggs": { 
    "result_1": { 
     "terms": { 
     "field": "Foo", 
     "order": { 
      "condi_nested>filtered>condi_range>statistic_score.min": "desc" 
     }, 
     "size": 100000000 
     }, 
     "aggs": { 
     "condi_nested": { 
      "aggs": { 
      "filtered": { 
       "filter": { 
       "bool": {} 
       }, 
       "aggs": { 
       "condi_range": { 
        "filter": { 
        "range": { 
         "nested_path_of_float_field.float_field": { 
         "gte": 0, 
         "lte": 100 
         } 
        } 
        }, 
        "aggs": { 
        "statistic_score": { 
         "extended_stats": { 
         "field": "nested_path_of_float_field.float_field" 
         } 
        } 
        } 
       } 
       } 
      } 
      }, 
      "nested": { 
      "path": "nested_path_of_float_field" 
      } 
     } 
     } 
    } 
    } 
} 

und diese

{ 
    "aggs": { 
    "condi_nested": { 
     "aggs": { 
     "filtered": { 
      "filter": { 
      "bool": {} 
      }, 
      "aggs": { 
      "result_1": { 
       "terms": { 
       "field": "Foo", 
       "order": { 
        "reverse>condi_nested>condi_range>statistic_score.min": "desc" 
       }, 
       "size": 100000000 
       }, 
       "aggs": { 
       "reverse": { 
        "aggs": { 
        "condi_nested": { 
         "aggs": { 
         "condi_range": { 
          "filter": { 
          "range": { 
           "nested_path_of_float_field.float_field": { 
           "gte": 0, 
           "lte": 100 
           } 
          } 
          }, 
          "aggs": { 
          "percentile_score": { 
           "percentiles": { 
           "field": "nested_path_of_float_field.float_field" 
           } 
          }, 
          "statistic_score": { 
           "extended_stats": { 
           "field": "nested_path_of_float_field.float_field" 
           } 
          } 
          } 
         } 
         }, 
         "nested": { 
         "path": "nested_path_of_float_field" 
         } 
        } 
        }, 
        "reverse_nested": {} 
       } 
       } 
      } 
      } 
     } 
     }, 
     "nested": { 
     "path": "nested_path_of_Foo" 
     } 
    } 
    } 
} 
Verwandte Themen