Skip to main content

Crate hermes_core

Crate hermes_core 

Source
Expand description

Hermes - A minimal async search engine library

Inspired by tantivy/summavy, this library provides:

  • Fully async IO with Directory abstraction for network/local/memory storage
  • SSTable-based term dictionary with hot cache and lazy loading
  • Bitpacked posting lists with block-level skip info
  • Document store with Zstd compression
  • Multiple segments with merge support
  • Text and numeric field support
  • Term, boolean, and boost queries
  • BlockWAND / MaxScore query optimizations

Re-exports§

pub use dsl::Document;
pub use dsl::Field;
pub use dsl::FieldDef;
pub use dsl::FieldEntry;
pub use dsl::FieldType;
pub use dsl::FieldValue;
pub use dsl::IndexDef;
pub use dsl::QueryLanguageParser;
pub use dsl::Schema;
pub use dsl::SchemaBuilder;
pub use dsl::SdlParser;
pub use dsl::parse_sdl;
pub use dsl::parse_single_index;
pub use structures::AsyncSSTableReader;
pub use structures::BlockPostingList;
pub use structures::HorizontalBP128Iterator;
pub use structures::HorizontalBP128PostingList;
pub use structures::PostingList;
pub use structures::PostingListIterator;
pub use structures::SSTableValue;
pub use structures::TERMINATED;
pub use structures::TermInfo;
pub use directories::FsDirectory;
pub use directories::MmapDirectory;
pub use directories::AsyncFileRead;
pub use directories::CachingDirectory;
pub use directories::Directory;
pub use directories::DirectoryWriter;
pub use directories::FileSlice;
pub use directories::LazyFileHandle;
pub use directories::LazyFileSlice;
pub use directories::OwnedBytes;
pub use directories::RamDirectory;
pub use directories::SliceCacheStats;
pub use directories::SliceCachingDirectory;
pub use segment::AsyncSegmentReader;
pub use segment::AsyncStoreReader;
pub use segment::FieldStats;
pub use segment::SegmentId;
pub use segment::SegmentMeta;
pub use segment::SegmentReader;
pub use segment::SegmentBuilder;
pub use segment::SegmentBuilderConfig;
pub use segment::SegmentBuilderStats;
pub use query::Bm25Params;
pub use query::BooleanQuery;
pub use query::BoostQuery;
pub use query::Query;
pub use query::ScoredDoc;
pub use query::Scorer;
pub use query::SearchHit;
pub use query::SearchResponse;
pub use query::SearchResult;
pub use query::TermQuery;
pub use query::TopKCollector;
pub use query::WandExecutor;
pub use query::WandOrQuery;
pub use query::search_segment;
pub use tokenizer::BoxedTokenizer;
pub use tokenizer::Language;
pub use tokenizer::LanguageAwareTokenizer;
pub use tokenizer::LowercaseTokenizer;
pub use tokenizer::MultiLanguageStemmer;
pub use tokenizer::SimpleTokenizer;
pub use tokenizer::StemmerTokenizer;
pub use tokenizer::Token;
pub use tokenizer::Tokenizer;
pub use tokenizer::TokenizerRegistry;
pub use tokenizer::parse_language;
pub use directories::SLICE_CACHE_EXTENSION;
pub use error::Error;
pub use error::Result;
pub use index::Index;
pub use index::IndexConfig;
pub use index::SLICE_CACHE_FILENAME;
pub use index::IndexWriter;
pub use index::warmup_and_save_slice_cache;
pub use index::IndexingStats;
pub use index::SchemaConfig;
pub use index::SchemaFieldConfig;
pub use index::create_index_at_path;
pub use index::create_index_from_sdl;
pub use index::index_documents_from_reader;
pub use index::index_json_document;
pub use index::parse_schema;
pub use merge::SegmentManager;
pub use merge::MergeCandidate;
pub use merge::MergePolicy;
pub use merge::NoMergePolicy;
pub use merge::SegmentInfo;
pub use merge::TieredMergePolicy;

Modules§

compression
Compression using Zstd with dictionary support
directories
dsl
error
Error types for minisearch
index
Index - multi-segment async search index
merge
Merge policies for background segment merging
query
Query types and search execution
schema
segment
structures
Core data structures for indexing
tokenizer
Tokenizer API for text processing

Type Aliases§

DefaultDirectory
Default directory type for native builds - uses memory-mapped files for efficient access
DocId
Score
TermFreq