MariaDBKeywordRetriever
Retrieve documents from a MariaDBDocumentStore using full-text keyword search. Use this component in query pipelines that rely on lexical matching rather than dense vector similarity.
Key Features
- Performs full-text keyword search using MariaDB's
MATCH ... AGAINSTin natural language mode. - Uses a FULLTEXT index on the
contentcolumn for efficient keyword queries. - Ranks results by BM25-style relevance scores.
- Configurable filter policy to merge or replace filters at query time.
- Requires MariaDB 11.7 or later.
Configuration
Add Workspace-Level Integration
- Click your profile icon and choose Settings.
- Go to Workspace>Integrations.
- Find the provider you want to connect and click Connect next to them.
- Enter the API key and any other required details.
- Click Connect. You can use this integration in pipelines and indexes in the current workspace.
Add Organization-Level Integration
- Click your profile icon and choose Settings.
- Go to Organization>Integrations.
- Find the provider you want to connect and click Connect next to them.
- Enter the API key and any other required details.
- Click Connect. You can use this integration in pipelines and indexes in all workspaces in the current organization.
- Set the
MARIADB_USERandMARIADB_PASSWORDenvironment variables with your MariaDB credentials. - Configure a
MariaDBDocumentStorein your pipeline. The FULLTEXT index on thecontentcolumn is created automatically when the table is initialized. - Drag the
MariaDBKeywordRetrievercomponent onto the canvas from the Component Library. - Connect the retriever output to downstream components such as
PromptBuilder.
Connections
MariaDBKeywordRetriever receives a query string as input. It outputs a list of Document objects ranked by full-text relevance that you can connect to PromptBuilder or other downstream components.
Source Code
To check this component's source code, open keyword_retriever.py in the Haystack Core Integrations repository.
Usage Examples
Basic Configuration
MariaDBKeywordRetriever:
type: haystack_integrations.components.retrievers.mariadb.keyword_retriever.MariaDBKeywordRetriever
init_parameters:
document_store: MariaDBDocumentStore
top_k: 5
Using the Component in a Pipeline
# haystack-pipeline
components:
document_store:
type: haystack_integrations.document_stores.mariadb.document_store.MariaDBDocumentStore
init_parameters:
host: 127.0.0.1
port: 3306
database: haystack
embedding_dimension: 768
retriever:
type: haystack_integrations.components.retrievers.mariadb.keyword_retriever.MariaDBKeywordRetriever
init_parameters:
document_store: document_store
top_k: 5
inputs:
query:
- retriever.query
outputs:
documents: retriever.documents
Parameters
Inputs
| Parameter | Type | Description |
|---|---|---|
query | str | The keyword query string to search for. |
filters | Optional[Dict[str, Any]] | Filters to apply when retrieving documents. |
top_k | Optional[int] | The maximum number of documents to retrieve. Overrides the init-time value. |
Outputs
| Parameter | Type | Description |
|---|---|---|
documents | List[Document] | A list of documents ranked by full-text relevance from the document store. |
Init Parameters
These are the parameters you can configure in Pipeline Builder:
| Parameter | Type | Default | Description |
|---|---|---|---|
document_store | MariaDBDocumentStore | The MariaDB document store to retrieve documents from. | |
filters | Optional[Dict[str, Any]] | None | Default filters to apply when retrieving documents. |
top_k | int | 10 | The maximum number of documents to retrieve. |
filter_policy | FilterPolicy | FilterPolicy.REPLACE | How to handle filters passed at query time. REPLACE replaces init-time filters; MERGE combines them. |
Run Method Parameters
These are the parameters you can configure for the component's run() method. This means you can pass these parameters at query time through the API, in Playground, or when running a job. For details, see Modify Pipeline Parameters at Query Time.
| Parameter | Type | Default | Description |
|---|---|---|---|
query | str | The keyword query string. | |
filters | Optional[Dict[str, Any]] | None | Runtime filters to apply. |
top_k | Optional[int] | None | Maximum number of documents to retrieve. Overrides the init-time value. |
Related Information
Was this page helpful?