summaryrefslogtreecommitdiffstats
path: root/src/parse.rs
diff options
context:
space:
mode:
authorBryan Newbold <bnewbold@archive.org>2020-12-17 13:08:39 -0800
committerBryan Newbold <bnewbold@archive.org>2020-12-17 13:08:39 -0800
commit8a4376fb2a3404ffaf58b6946f1086bdc793aea5 (patch)
treef040718917e9ac22017cf0598db1f0aabc6ce1b1 /src/parse.rs
parent3940c481760fbe2c9299fb52513e7717b8e3c214 (diff)
downloades-public-proxy-8a4376fb2a3404ffaf58b6946f1086bdc793aea5.tar.gz
es-public-proxy-8a4376fb2a3404ffaf58b6946f1086bdc793aea5.zip
add support for date_histogram and composite aggregations
Diffstat (limited to 'src/parse.rs')
-rw-r--r--src/parse.rs26
1 files changed, 24 insertions, 2 deletions
diff --git a/src/parse.rs b/src/parse.rs
index 07c55a0..10216f7 100644
--- a/src/parse.rs
+++ b/src/parse.rs
@@ -141,6 +141,8 @@ pub struct SearchBody {
pub terminate_after: Option<u32>,
#[serde(skip_serializing_if = "Option::is_none")]
pub timeout: Option<String>, // string is "time units"
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub track_total_hits: Option<bool>,
}
#[derive(Serialize, Deserialize, Debug)]
@@ -654,8 +656,12 @@ pub struct ApiAggregation {
#[serde(skip_serializing_if = "Option::is_none")]
filters: Option<FiltersAggregation>,
#[serde(skip_serializing_if = "Option::is_none")]
+ composite: Option<CompositeAggregation>,
+ #[serde(skip_serializing_if = "Option::is_none")]
histogram: Option<SimpleAggregation>,
#[serde(skip_serializing_if = "Option::is_none")]
+ date_histogram: Option<DateHistogramAggregation>,
+ #[serde(skip_serializing_if = "Option::is_none")]
terms: Option<TermsAggregation>,
#[serde(skip_serializing_if = "Option::is_none")]
significant_terms: Option<SimpleAggregation>,
@@ -698,6 +704,8 @@ pub struct SimpleAggregation {
#[serde(skip_serializing_if = "Option::is_none")]
missing: Option<StringOrNum>,
#[serde(skip_serializing_if = "Option::is_none")]
+ missing_bucket: Option<bool>,
+ #[serde(skip_serializing_if = "Option::is_none")]
keyed: Option<bool>,
}
@@ -716,11 +724,23 @@ pub struct DateHistogramAggregation {
#[serde(skip_serializing_if = "Option::is_none")]
offset: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
- order: Option<HashMap<String, String>>,
+ order: Option<SortElement>,
#[serde(skip_serializing_if = "Option::is_none")]
keyed: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
missing: Option<StringOrNum>,
+ #[serde(skip_serializing_if = "Option::is_none")]
+ missing_bucket: Option<bool>,
+}
+
+#[derive(Serialize, Deserialize, Debug)]
+#[serde(deny_unknown_fields)]
+pub struct CompositeAggregation {
+ sources: Vec<HashMap<String,ApiAggregation>>,
+ #[serde(skip_serializing_if = "Option::is_none")]
+ size: Option<u32>,
+ #[serde(skip_serializing_if = "Option::is_none")]
+ after: Option<HashMap<String, StringOrNum>>,
}
#[derive(Serialize, Deserialize, Debug)]
@@ -744,7 +764,7 @@ pub struct TermsAggregation {
#[serde(skip_serializing_if = "Option::is_none")]
show_term_doc_count_error: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
- order: Option<HashMap<String, String>>,
+ order: Option<SortElement>,
#[serde(skip_serializing_if = "Option::is_none")]
include: Option<StringOrArray>,
#[serde(skip_serializing_if = "Option::is_none")]
@@ -753,4 +773,6 @@ pub struct TermsAggregation {
execution_hint: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
missing: Option<StringOrNum>,
+ #[serde(skip_serializing_if = "Option::is_none")]
+ missing_bucket: Option<bool>,
}