Expand description
OpenSearch integration for the Armature framework.
This crate provides a high-level client for OpenSearch with support for:
- Document indexing, searching, and management
- Index lifecycle management
- Bulk operations with streaming support
- Query DSL builder
- AWS OpenSearch Service authentication
§Example
use armature_opensearch::{OpenSearchClient, OpenSearchConfig, Document};
use serde::{Deserialize, Serialize};
#[derive(Debug, Serialize, Deserialize)]
struct Article {
title: String,
body: String,
tags: Vec<String>,
}
impl Document for Article {
fn index_name() -> &'static str {
"articles"
}
}
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
// Create client
let config = OpenSearchConfig::new("http://localhost:9200");
let client = OpenSearchClient::new(config)?;
// Index a document
let article = Article {
title: "Hello OpenSearch".to_string(),
body: "Getting started with full-text search.".to_string(),
tags: vec!["tutorial".to_string(), "search".to_string()],
};
client.index("article-1", &article).await?;
// Search
let results: Vec<Article> = client
.search()
.index("articles")
.query_string("hello")
.execute()
.await?;
Ok(())
}Modules§
- prelude
- Prelude for common imports.
Structs§
- Aggregation
Result - Aggregation result wrapper.
- Bool
Query - Bool query for combining multiple queries.
- Index
Manager - Index manager for creating and managing indices.
- Index
Settings - Index settings for creating indices.
- Mapping
- Field mapping configuration.
- Mapping
Field - Field mapping definition.
- Match
Query - Match query for full-text search.
- Open
Search Client - OpenSearch client for document operations.
- Open
Search Config - OpenSearch client configuration.
- Query
Builder - Query builder for constructing OpenSearch queries.
- Range
Query - Range query for numeric/date ranges.
- Search
Builder - Search builder for constructing and executing searches.
- Search
Result - Search result.
- Term
Query - Term query for exact matching.
- TlsConfig
- TLS configuration.
Enums§
- Aggregation
- Aggregation types.
- Field
Type - Field types.
- Open
Search Error - OpenSearch error type.
- Query
- Query types supported by OpenSearch.
Traits§
- Document
- Trait for documents that can be indexed in OpenSearch.