elastic-query-builder 0.1.38

ElasticSearch Query Builder
Documentation
## ElasticQueryBuilder
![Crates.io](https://img.shields.io/crates/v/elastic_query_builder?style=flat-square)
![GitHub](https://img.shields.io/github/license/openai-rs/openai-api?style=flat-square)

ElasticQueryBuilder is a query builder designed to easily build ElasticSearch related DSLs.



## install
```toml
# Cargo.toml
[dependencies]
elastic-query-builder ="0.1"
```

## Futures
* Mapping
* DML Query
* Aggregation


## Mapping
```rust
fn main() {
    let mut mapping = MappingBuilder::new();
    mapping
        .add_property("title", KeywordFieldType::new())
        .add_property("content", TextFieldType::new());
    assert_eq!(
        mapping.build().to_string(),
        r#"{"mappings":{"properties":{"content":{"type":"text"},"title":{"type":"keyword"}}}}"#
    );
}
```


# DML Query

### Build Json Query
```rust
fn main() {
    let mut query = QueryBuilder::new();
    query.set_query(MatchQuery::new("field", "value"));
    query.set_from(10);
    query.set_size(100);
    let value_json = query.build();
}
```


### Providing Query
* bool_query
* exists_query
* geo_distance_query
* match_all_query
* match_query
* multi_match_query
* nested
* range_query
* script_query
* script_score_query
* term_query
* terms_query
* wildcard_query



### BoolQuery Example
```rust
fn main() {
    let mut query = QueryBuilder::new();
    let mut bool = BoolQuery::new();
    bool.add_must(MatchQuery::new("field1", "value"));
    bool.add_must_not(MatchQuery::new("field2", "value"));
    bool.add_should(MatchQuery::new("field3", "value"));
    query.set_query(bool);
}
```
### Nested Example
```rust
fn main() {
    let mut query = QueryBuilder::new();
    let nested = NestedQuery::new("locations", MatchQuery::new("locations.country", "JP"));
    query.set_query(nested);
}
```