Search
The Search resource (client.search) provides multi-entity discovery across the Qarion platform. You can search within a single space or across all spaces in an organization. Results span products, issues, meetings, connectors, source systems, contracts, users, and comments — all returned in a unified SearchResult model with a type discriminator.
Search Modes
Both methods accept an optional mode parameter that controls the search strategy:
| Mode | Description |
|---|---|
"auto" | (default) Keyword search, automatically enriched with semantic results when embeddings are configured |
"keyword" | Full-text keyword search only |
"semantic" | Vector-similarity search using AI embeddings |
Methods
search(space_slug, query, *, mode="auto")
Search across all entity types within a single space.
| Parameter | Type | Default | Description |
|---|---|---|---|
space_slug | str | required | Space identifier |
query | str | required | Search query (minimum 2 characters) |
mode | SearchMode | "auto" | Search strategy: "auto", "keyword", or "semantic" |
Returns: list[SearchResult]
results = await client.search.search("marketing-analytics", "revenue")
for result in results:
print(f"[{result.type}] {result.name}")
Each result includes the type field so you can branch on entity kind:
results = await client.search.search("marketing-analytics", "pipeline")
products = [r for r in results if r.type == "product"]
issues = [r for r in results if r.type == "issue"]
meetings = [r for r in results if r.type == "meeting"]
Use mode to force a specific strategy:
# Keyword-only — fastest, exact matches
results = await client.search.search("analytics", "revenue", mode="keyword")
# Semantic-only — intent-based, finds conceptually similar results
results = await client.search.search("analytics", "tables about customer spending", mode="semantic")
search_organization(org_slug, query, *, mode="auto")
Search across all spaces the user has access to within an organization. Results are aggregated and capped per entity type to ensure balanced discovery.
| Parameter | Type | Default | Description |
|---|---|---|---|
org_slug | str | required | Organization identifier |
query | str | required | Search query (minimum 2 characters) |
mode | SearchMode | "auto" | Search strategy: "auto", "keyword", or "semantic" |
Returns: list[SearchResult]
results = await client.search.search_organization("acme-corp", "revenue")
for result in results:
print(f"[{result.type}] {result.name}: {result.description}")
Synchronous Usage
Both methods are available on the synchronous client with the same signatures:
from qarion import QarionSyncClient
with QarionSyncClient(api_key="qk_...") as client:
results = client.search.search("marketing-analytics", "revenue")
org_results = client.search.search_organization("acme-corp", "revenue", mode="semantic")