basalt / search/src / SearchDriver
Interface: SearchDriver
Defined in: search/src/types.ts:70
Search backend contract. The core talks to this; drivers talk to the engine. Every operation is tenant-scoped: search must only ever return documents whose tenantId matches the query.
Methods
bulk()
> bulk(indexName, documents): Promise<void>
Defined in: search/src/types.ts:74
Parameters
indexName
string
documents
Returns
Promise<void>
clear()
> clear(indexName): Promise<void>
Defined in: search/src/types.ts:81
Drops every document in the index — every tenant's. Used by a whole-index reindex({ all: true }) and by tests.
Parameters
indexName
string
Returns
Promise<void>
clearTenant()?
> optional clearTenant(indexName, tenantId): Promise<void>
Defined in: search/src/types.ts:93
Drops every document of ONE tenant in the index and leaves every other tenant's documents untouched. Used by a tenant-scoped reindex().
Optional so a custom driver written against the older contract still compiles — but Search refuses a scoped rebuild on a driver without it (SearchDriverCapabilityError) instead of falling back to clear, which would wipe every other tenant. Implementations must delete by the stored tenantId (delete-by-query / WHERE tenant_id = …), never by listing ids through search, which is paged and can miss rows.
Parameters
indexName
string
tenantId
string
Returns
Promise<void>
index()
> index(indexName, document): Promise<void>
Defined in: search/src/types.ts:73
Parameters
indexName
string
document
Returns
Promise<void>
register()?
> optional register(index): Promise<void>
Defined in: search/src/types.ts:72
Optional: called once per index at boot with its config.
Parameters
index
Returns
Promise<void>
remove()
> remove(indexName, tenantId, id): Promise<void>
Defined in: search/src/types.ts:75
Parameters
indexName
string
tenantId
string
id
string
Returns
Promise<void>
search()
> search(indexName, query): Promise<SearchResult>
Defined in: search/src/types.ts:76
Parameters
indexName
string
query
Returns
Promise<SearchResult>