Search Entities
Search across all content in a project with advanced filtering options.Path Parameters
Project external UUID
Query Parameters
Page number for pagination (1-indexed)
Number of results per page (max 100)
Request Body
Primary Search Modes (use ONE)
Full-text search query. Supports boolean operators:
python AND flask- Both terms requiredpython OR django- Either term matchespython NOT django- First term but not second(python OR flask) AND web- Grouping with parentheses
Search entity titles only
Exact permalink match
Glob-style permalink pattern (e.g.,
docs/*, specs/search*)Search Filters (optional)
Filter by note types (e.g.,
["note", "person", "spec"])Filter by entity types:
entity, observation, or relationOnly return items updated after this date (ISO 8601 format)
Structured frontmatter filters (e.g.,
{"status": "active", "priority": "high"})Filter by frontmatter tags (e.g.,
["python", "web"])Filter by frontmatter status field
Search strategy:
fts- Full-text search (fast, keyword-based)vector- Semantic search (meaning-based, requires embeddings)hybrid- Combines FTS and vector search
Minimum similarity score for semantic search (0.0 to 1.0)
Response
Array of search results
Current page number
Results per page
True if more results are available
Example Response
Reindex Project
Rebuilds the search index from scratch for a project. This is a background operation.Response
Always “ok”
Status message: “Reindex initiated”
When to Reindex
Reindexing is typically needed after:- Bulk imports or migrations
- Database corruption or inconsistencies
- Upgrading Basic Memory versions
- Changing search configuration
Reindexing happens in the background and doesn’t block API requests. Search will continue using the old index until reindexing completes.
Search Strategies
Full-Text Search (FTS)
Keyword-based search using SQLite FTS5:- Fast performance
- No additional setup required
- Exact keyword matching
- Misses semantic matches
- Requires exact word forms
Semantic Search (Vector)
Meaning-based search using embeddings:- Finds conceptually similar content
- Understands synonyms and context
- Better for natural language queries
- Requires embedding generation (slower initial setup)
- Higher computational cost
- Requires
semantic_search_enabledin config
Semantic search requires embeddings to be generated. Enable with:
Hybrid Search
Combines FTS and vector search for best results:- Balances speed and semantic understanding
- Catches both exact and conceptual matches
- Best overall accuracy
- Requires embeddings like vector search
- Slightly slower than pure FTS