Crate armature_opensearch

Crate armature_opensearch 

Source
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§

AggregationResult
Aggregation result wrapper.
BoolQuery
Bool query for combining multiple queries.
IndexManager
Index manager for creating and managing indices.
IndexSettings
Index settings for creating indices.
Mapping
Field mapping configuration.
MappingField
Field mapping definition.
MatchQuery
Match query for full-text search.
OpenSearchClient
OpenSearch client for document operations.
OpenSearchConfig
OpenSearch client configuration.
QueryBuilder
Query builder for constructing OpenSearch queries.
RangeQuery
Range query for numeric/date ranges.
SearchBuilder
Search builder for constructing and executing searches.
SearchResult
Search result.
TermQuery
Term query for exact matching.
TlsConfig
TLS configuration.

Enums§

Aggregation
Aggregation types.
FieldType
Field types.
OpenSearchError
OpenSearch error type.
Query
Query types supported by OpenSearch.

Traits§

Document
Trait for documents that can be indexed in OpenSearch.

Type Aliases§

Hit
A search hit.
Result
Result type alias for OpenSearch operations.