Search
Shoehorn provides full-text search across your entire platform, powered by Meilisearch. Results appear instantly as you type with typo tolerance, synonym expansion, and relevance ranking.
Using Search
Section titled “Using Search”Click the search bar or press / from any page. Results stream in as you type.
What is Searchable
Section titled “What is Searchable”Search covers 9 content types:
| Type | Searchable fields (priority order) |
|---|---|
| Entities | name, description, tags, metadata |
| Documentation | title, search terms, description, content, tags |
| Users | name, username, email, department |
| Teams | name, description, type |
| Repositories | name, full name, description, language, topics |
| Workflows | name, slug, description, tags |
| Molds | name, slug, description, language, tags |
| Pipelines | name, description, provider |
| Doc Sites | title, description, URL |
Fields listed first have higher relevance weight. A match on an entity name ranks higher than a match in its metadata.
Search Features
Section titled “Search Features”Typo tolerance
Section titled “Typo tolerance”Search finds results even with misspellings. Words with 4+ characters tolerate 1 typo, words with 8+ characters tolerate 2 typos.
Examples:
paymntfindspaymentkuberntesfindskubernetesdeploymntfindsdeployment
Synonyms
Section titled “Synonyms”Built-in synonyms expand your queries automatically:
| You type | Also matches |
|---|---|
k8s | kubernetes, kube |
svc | service |
deploy | deployment |
repo | repository |
db | database |
app | application |
config | configuration |
docker | dockerhub |
git | github, gitlab |
Additional synonyms are registered per content type. For example, in repositories: gh matches github, gl matches gitlab, bb matches bitbucket.
Ranking
Section titled “Ranking”Results are ranked by:
- Word match, more matched query terms rank higher
- Typo count, fewer typos rank higher
- Proximity, matched terms closer together rank higher
- Field priority, match in name ranks above match in description
- Sort, user-specified sort order (if any)
- Exactness, exact matches rank above prefix matches
- Recency, newer items get a boost
Filtering
Section titled “Filtering”Narrow results by type, lifecycle, owner, or tags using the filter panel or query parameters.
Semantic search (documentation)
Section titled “Semantic search (documentation)”Documentation search supports hybrid keyword + semantic matching. When you ask a question-like query (starting with “how”, “what”, “why”, etc.) or use 5+ words, the search engine combines keyword relevance with meaning-based vector similarity for better results.
Search API
Section titled “Search API”curl "https://shoehorn.example.com/api/v1/search?q=payment&type=service" \ -H "Authorization: Bearer <token>"Query parameters
Section titled “Query parameters”| Parameter | Description | Example |
|---|---|---|
q | Search query | payment |
type | Filter by content type | entity, doc, user, team, repository, workflow, mold, pipeline |
owner | Filter by team | payments-team |
lifecycle | Filter by lifecycle | production |
tags | Filter by tags | critical |
limit | Results per page (default 20) | 20 |
offset | Pagination offset | 0 |
sort_by | Sort field | relevance, date, title, type |
Autocomplete
Section titled “Autocomplete”curl "https://shoehorn.example.com/api/v1/search/autocomplete?q=pay&limit=5" \ -H "Authorization: Bearer <token>"Autocomplete combines:
- Query completions
- Content-based suggestions
- Your recent search history
- Trending searches across the platform
Results are cached per user for 5 minutes.
Indexing
Section titled “Indexing”Entities are indexed automatically when:
- Created via API, manifest, K8s agent, or Terraform
- Updated (metadata, annotations, or enrichment changes)
- Enriched (README fetched, scorecard evaluated, entityFile applied)
The search index rebuilds automatically if it becomes stale. You can check indexing status at:
GET /api/v1/indexing/statusAccess Control
Section titled “Access Control”Search results are filtered by your tenant and permissions. You only see items you have access to. The search engine enforces:
- Tenant isolation (you only see your tenant’s data)
- Public/private visibility
- Team-based access controls
- Soft-delete exclusion (deleted items are hidden)