Module QueryIndex

Module QueryIndex 

Source
Expand description

§QueryIndex

§File: Indexing/Store/QueryIndex.rs

§Role in Air Architecture

Provides index query functionality for the File Indexer service, handling search operations across indexed files with multiple search modes.

§Primary Responsibility

Query the file index to find symbols and content matching search criteria, supporting literal, regex, fuzzy, and exact search modes.

§Secondary Responsibilities

  • Multi-mode search (literal, regex, fuzzy, exact)
  • Case sensitivity and whole word matching
  • Path and language filtering
  • Result pagination and ranking
  • Search query sanitization

§Dependencies

External Crates:

  • regex - Regular expression search patterns
  • tokio - Async file I/O operations

Internal Modules:

  • crate::Result - Error handling type
  • crate::AirError - Error types
  • super::super::FileIndex - Index structure definitions

§Dependents

  • Indexing::mod::FileIndexer - Main file indexer implementation

§VSCode Pattern Reference

Inspired by VSCode’s search functionality in src/vs/workbench/services/search/common/

§Security Considerations

  • Search query sanitization prevents injection
  • Query length limits
  • Control character filtering

§Performance Considerations

  • Content index for fast token lookup
  • Result pagination to limit memory usage
  • Efficient string matching algorithms
  • Fuzzy search with configurable distance

§Error Handling Strategy

Query operations return detailed error messages for invalid queries or search failures, treating individual file read errors as warnings.

§Thread Safety

Query operations read from shared Arc<RwLock<>> state and return safe-ownership results for the caller.

Structs§

PaginatedSearchResults
Paginated search results
SearchMatch
Search match with full context
SearchQuery
Search query with multiple modes
SearchResult
Search result with relevance scoring

Enums§

SearchMode
Search mode

Constants§

MAX_SEARCH_RESULTS_DEFAULT
Maximum search results per query (pagination default)

Functions§

MatchesFilters
Check if file matches filters
QueryIndexSearch
Search files with multiple modes and comprehensive query handling
SanitizeSearchQuery
Sanitize search query to prevent injection and invalid patterns