Search
HAEVN indexes the full text of every synced conversation, so you can search across your entire archive in milliseconds — regardless of which platform a conversation came from.
How to search
Section titled “How to search”Type in the search box at the top of the Archive view. Results appear automatically as you type, grouped by conversation and showing matching snippets.
Each result shows:
- The conversation title and source platform
- Matching message snippets with the search term highlighted in context
- A Show more button if there are many matching messages within a conversation
- Open in Viewer and Export buttons to act on results directly
Search syntax
Section titled “Search syntax”HAEVN uses Lunr.js for full-text search with support for advanced query operators.
Basic queries
Section titled “Basic queries”Multiple terms (AND): By default, all terms must match (AND logic).
python async functionThis finds messages containing all three terms: python AND async AND function.
Exact phrases: Wrap your query in double quotes to match a specific phrase in order.
"Ingeborg Bachmann"The words must appear consecutively and in that exact order.
Advanced operators
Section titled “Advanced operators”| Operator | Example | Description |
|---|---|---|
+ | +required | Term must be present (AND). Default behavior. |
- | -exclude | Term must not be present (NOT). |
* | react* | Prefix/wildcard — matches react, reactive, reactor, etc. |
~ | roam~2 | Fuzzy match with edit distance 2 — catches typos like room, foam. |
^ | important^10 | Boost term relevance (higher = more important). |
" | "exact phrase" | Phrase search — terms must appear consecutively. |
Examples
Section titled “Examples”Exclude unwanted results:
react hooks -classFinds messages about React hooks but excludes any mentioning “class”.
Fuzzy matching for typos:
kubernates~2Matches “kubernetes” even with the typo.
Boost important terms:
api^5 design documentationRanks messages with “api” higher than those with just “design” or “documentation”.
Prefix search:
async* await*Matches “async”, “asynchronous”, “await”, “awaiting”, etc.
Automatic fallback
Section titled “Automatic fallback”If your strict AND query returns no results, HAEVN automatically retries with relaxed prefix matching (OR semantics). This helps when exact terms don’t match but similar terms exist.
- Titles are boosted: Conversation titles have 10x relevance weight, so short queries often surface the right conversation first.
- Case-insensitive: Search ignores case.
- Stop words filtered: Common words like “the”, “a”, “is” are excluded from the index.
How search works
Section titled “How search works”HAEVN uses Lunr.js to build a full-text index of your conversations. The index is built incrementally as conversations are synced — new conversations become searchable immediately after syncing.
Key characteristics:
- The index runs entirely in your browser — no search queries leave your machine
- The index is stored locally and persists across browser sessions
- Search runs in a Web Worker to avoid blocking the UI
Filtering search results
Section titled “Filtering search results”After searching, use the Provider dropdown to filter results to a specific platform. This is useful when you know the conversation was on ChatGPT vs Claude, for example.