Skip to main content

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:

ModeDescription
"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.

ParameterTypeDefaultDescription
space_slugstrrequiredSpace identifier
querystrrequiredSearch query (minimum 2 characters)
modeSearchMode"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.

ParameterTypeDefaultDescription
org_slugstrrequiredOrganization identifier
querystrrequiredSearch query (minimum 2 characters)
modeSearchMode"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")