Skip to content

uiuifree/elastic-query-builder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

67 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ElasticQueryBuilder

Crates.io GitHub

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

install

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

Futures

  • Mapping
  • DML Query
  • Aggregation

Mapping

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

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

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

fn main() { let mut query = QueryBuilder::new(); let nested = NestedQuery::new("locations", MatchQuery::new("locations.country", "JP")); query.set_query(nested); }

About

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

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages