use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct SearchQuery {
#[serde(rename = "query_string", skip_serializing_if = "Option::is_none")]
pub query_string: Option<String>,
#[serde(rename = "match", skip_serializing_if = "Option::is_none")]
pub r#match: Option<serde_json::Value>,
#[serde(rename = "match_phrase", skip_serializing_if = "Option::is_none")]
pub match_phrase: Option<serde_json::Value>,
#[serde(rename = "match_all", skip_serializing_if = "Option::is_none")]
pub match_all: Option<serde_json::Value>,
#[serde(rename = "bool", skip_serializing_if = "Option::is_none")]
pub bool: Option<Box<models::BoolFilter>>,
#[serde(rename = "equals", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub equals: Option<Option<serde_json::Value>>,
#[serde(rename = "in", skip_serializing_if = "Option::is_none")]
pub r#in: Option<serde_json::Value>,
#[serde(rename = "range", skip_serializing_if = "Option::is_none")]
pub range: Option<serde_json::Value>,
#[serde(rename = "geo_distance", skip_serializing_if = "Option::is_none")]
pub geo_distance: Option<Box<models::GeoDistance>>,
#[serde(rename = "highlight", skip_serializing_if = "Option::is_none")]
pub highlight: Option<Box<models::Highlight>>,
}
impl SearchQuery {
pub fn new() -> SearchQuery {
SearchQuery {
query_string: None,
r#match: None,
match_phrase: None,
match_all: None,
bool: None,
equals: None,
r#in: None,
range: None,
geo_distance: None,
highlight: None,
}
}
}