laurus 0.3.1

Unified search library for lexical, vector, and semantic retrieval
//! Analyzer implementations that combine tokenizers and filters.
//!
//! This module provides complete text analysis pipelines that combine tokenizers
//! and token filters to process text for indexing and searching. Analyzers are
//! the main entry point for text analysis in Laurus.
//!
//! # Available Analyzers
//!
//! - [`standard::StandardAnalyzer`] - General-purpose analyzer with whitespace tokenization
//! - [`simple::SimpleAnalyzer`] - Simple lowercase + letter tokenization
//! - [`keyword::KeywordAnalyzer`] - Treats entire input as single token (for IDs, tags)
//! - [`noop::NoOpAnalyzer`] - No-op analyzer for testing
//! - [`pipeline::PipelineAnalyzer`] - Customizable analyzer with filter chain
//! - [`per_field::PerFieldAnalyzer`] - Different analyzers per field
//! - [`language`] - Language-specific analyzers (English, Japanese, etc.)
//!
//! # Architecture
//!
//! ```text
//! Text → Tokenizer → Token Filters → Analyzed Tokens
//! ```
//!
//! # Examples
//!
//! ```
//! use laurus::analysis::analyzer::analyzer::Analyzer;
//! use laurus::analysis::analyzer::standard::StandardAnalyzer;
//!
//! let analyzer = StandardAnalyzer::new().unwrap();
//! let tokens: Vec<_> = analyzer.analyze("Hello World!").unwrap().collect();
//!
//! // Tokens: ["hello", "world"]
//! assert_eq!(tokens.len(), 2);
//! ```

#[allow(clippy::module_inception)]
pub mod analyzer;
pub mod keyword;
pub mod language;
pub mod noop;
pub mod per_field;
pub mod pipeline;
pub mod registry;
pub mod simple;
pub mod standard;