Crate opensearch_dsl
source ·Expand description
§Strongly typed OpenSearch DSL written in Rust
This is an unofficial library and doesn’t yet support all the DSL, it’s still work in progress.
§Features
- Strongly typed queries
- Strongly typed aggregations
- Automatically skips empty queries making DSL pleasant to use
- Crate doesn’t depend on opensearch-rs and can be used as a standalone library with any HTTP client to call OpenSearch
§Installation
Add opensearch-dsl
crate and version to Cargo.toml
[dependencies]
opensearch-dsl = "0.2"
§Documentation
Documentation for the library is available on docs.rs
§Quick start
use opensearch_dsl::*;
fn main() {
let query = Search::new()
.source(false)
.stats("statistics")
.from(0)
.size(30)
.query(
Query::bool()
.must(Query::multi_match(
["title", "description"],
"you know, for search",
))
.filter(Query::terms("tags", ["opensearch"]))
.should(Query::term("verified", true).boost(10)),
)
.aggregate(
"country_ids",
Aggregation::terms("country_id")
.aggregate("catalog_ids", Aggregation::terms("catalog_id"))
.aggregate("company_ids", Aggregation::terms("company_id"))
.aggregate(
"top1",
Aggregation::top_hits()
.size(1)
.sort(FieldSort::ascending("user_id")),
),
)
.rescore(Rescore::new(Query::term("field", 1)).query_weight(1.2));
}
See examples for more.
§License
Licensed under either of Apache License, Version 2.0 or MIT license at your option.Re-exports§
Modules§
- Performs analysis on a text string and returns the resulting tokens.
- Search APIs are used to search and aggregate data stored in OpenSearch indices and data streams. For an overview and related tutorials, see Search your data.