Skip to content

Fulltext capability

Base class for fulltext capability implementations.

This module defines BaseFulltextCapability that centralizes encryption and batching. Subclasses implement internal CRUD methods that operate on (possibly encrypted) data.

BaseFulltextCapability(encryption=None, default_batch_size=None)

Bases: DataStoreCapability

Base class for fulltext capability implementations.

Handles encryption and batching transparently. Subclasses implement internal CRUD methods that operate on plaintext data (or receive already-encrypted data when encryption is enabled).

create(data, batch_size=None, **kwargs) async

Create records with automatic encryption and batching.

Parameters:

Name Type Description Default
data Chunk | list[Chunk]

Single chunk or list of chunks to create.

required
batch_size int | None

Override batch size for this call. Defaults to None.

None
**kwargs Any

Passed to subclass _create.

{}

retrieve(filters=None, options=None, **kwargs) async

Retrieve records with filter/option validation and automatic decryption.

Validates filters and options against query_features before delegating to _retrieve, so unsupported operators or options raise ValueError early rather than failing inside the backend.

Parameters:

Name Type Description Default
filters FilterClause | QueryFilter | None

Metadata filters. Defaults to None.

None
options QueryOptions | None

Query options (limit, order_by, etc.). Defaults to None.

None
**kwargs Any

Passed to subclass _retrieve.

{}

Returns:

Type Description
list[Chunk]

list[Chunk]: Decrypted chunks from the datastore.

retrieve_fuzzy(query, max_distance=2, filters=None, options=None, **kwargs) async

Find records that fuzzy match the query, with validation and automatic decryption.

Validates filters and options against query_features before delegating to _retrieve_fuzzy, so unsupported operators or options raise ValueError early.

Parameters:

Name Type Description Default
query str

Text to fuzzy match against.

required
max_distance int

Maximum edit distance for matches (e.g. Levenshtein). Defaults to 2.

2
filters FilterClause | QueryFilter | None

Optional metadata filters. Defaults to None.

None
options QueryOptions | None

Query options (limit, etc.). Defaults to None.

None
**kwargs Any

Passed to subclass _retrieve_fuzzy.

{}

Returns:

Type Description
list[Chunk]

list[Chunk]: Matched chunks ordered by relevance/distance, decrypted when encryption is enabled.