Research¶
Research mode is where you search across the documents in a matter and read results. Switch to it using the Write / Research segmented control in the top bar.
Layout¶
Two panes:
- Left pane: controls bar (mode toggle, category filter, upload, actions menu), search input, and a tabbed content area with Search results and Documents list.
- Right pane: PDF viewer for the currently selected document.
Click a search result to jump into the PDF viewer, positioned at the match. Text highlighting marks the result in the document.
Search modes¶
Two modes, selectable per search via the segmented toggle above the search input:
| Mode | What it does | When to use |
|---|---|---|
| Keyword | Exact full-text matching against the document's extracted text | Default. Use when you know the phrasing — quoted statutes, proper nouns, specific case names |
| Semantic | Vector similarity using the selected embedder | When you're after a concept that could be phrased many ways ("duty of care," "good faith") |
Switch modes when the query type changes — keyword for known strings, semantic for ideas.
Running a search¶
- Make sure a matter is selected (search is scoped to the active matter).
- Type your query in the search input. Queries of 2+ characters work; longer is fine.
- Pick a mode (Keyword is the default).
- Optionally filter by category (see below).
- Press Enter or click Search.
Results appear in the right pane, ordered by score. Each row shows:
- An excerpt with the match highlighted
- The source document's filename
- The page number where the match lives
- A relevance score (for reference)
Scoring¶
- Keyword scores come from SQLite FTS5 ranking (term-frequency-based).
- Semantic scores are cosine similarity between the query's embedding and each document chunk's embedding, mapped to a 0–1 range for display.
The scores aren't directly comparable across modes — they live on different scales — but within a single result set, higher is better.
Filtering results¶
By category¶
If you've tagged documents with categories, the right pane lets you filter to "only results from documents in category X." Useful when a matter has hundreds of documents and you want to focus on one kind (e.g., only caselaw).
By document¶
Select a document in the left pane and search within just that document. This runs the same search pipeline but filtered to one source.
Opening results¶
Click any result to:
- Open the source PDF in the center viewer
- Scroll to the matching text
- Highlight the match range
You can then refine: scroll around, select more text, create a pin, or keep searching.
Creating pins from results¶
Each result has an action to pin it. That saves the excerpt into the matter's pin list, along with:
- The exact selected text
- The document ID and filename
- Page number and pinpoint (derived from the match location)
- The query that found it (useful later — you can remember why this excerpt mattered)
- A default category you can change
See Pins.
Re-indexing and search freshness¶
- When a document is still in Extracting state, keyword search can't find anything in it yet.
- When it's in Indexing state, semantic search won't return its chunks yet; keyword does.
- Once Ready, both modes hit the document.
If you change the Embedder in Settings, the entire semantic index is invalidated and you'll be prompted to rebuild. During the rebuild, semantic search returns partial results until everything is reprocessed.
Troubleshooting¶
Search returns nothing.
- Confirm the document's status is Ready, not Extracting or Indexing.
- Try a different mode — keyword for exact phrases, semantic for concepts.
- Lower the specificity of your query.
- If you've changed embedders recently, wait for the rebuild to finish.
Wrong document matched at the top.
- Try keyword mode with more specific terms to force exact matches.
- Remove noisy documents from the matter or tag them so you can filter them out with categories.
"Cannot connect to backend." The status pill shows Server as red. Recall Core isn't running (local mode) or the server is unreachable (server mode). See Troubleshooting.