OracleKeywordRetriever
Retrieve documents from an OracleDocumentStore using keyword-based search. Use this component in query pipelines that rely on lexical matching using Oracle Database 23ai's DBMS_SEARCH index.
Key Features
- Performs keyword search using Oracle's
DBMS_SEARCHfull-text index withCONTAINSqueries. - Ranks results by relevance using Oracle's built-in
SCORE()function. - Supports both thin (direct TCP) and thick (wallet/ADB-S) Oracle connection modes.
- Configurable filter policy to merge or replace filters at query time.
- Requires Oracle Database 23ai or later with
DBMS_SEARCHenabled.
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 environment variables for your Oracle credentials:
ORACLE_USER,ORACLE_PASSWORD, andORACLE_DSN. - Configure an
OracleDocumentStorein your pipeline. TheDBMS_SEARCHkeyword index is created automatically whencreate_table_if_not_existsisTrue(the default). For pre-existing tables, callcreate_keyword_index()manually. - Drag the
OracleKeywordRetrievercomponent onto the canvas from the Component Library. - Connect the retriever output to downstream components such as
PromptBuilder.
Connections
OracleKeywordRetriever receives a query string as input. It outputs a list of Document objects ranked by keyword 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
OracleKeywordRetriever:
type: haystack_integrations.components.retrievers.oracle.keyword_retriever.OracleKeywordRetriever
init_parameters:
document_store: OracleDocumentStore
top_k: 5
Using the Component in a Pipeline
# haystack-pipeline
components:
document_store:
type: haystack_integrations.document_stores.oracle.document_store.OracleDocumentStore
init_parameters:
connection_config:
user:
type: haystack.utils.Secret
init_parameters:
env_vars: ["ORACLE_USER"]
password:
type: haystack.utils.Secret
init_parameters:
env_vars: ["ORACLE_PASSWORD"]
dsn:
type: haystack.utils.Secret
init_parameters:
env_vars: ["ORACLE_DSN"]
embedding_dim: 1536
retriever:
type: haystack_integrations.components.retrievers.oracle.keyword_retriever.OracleKeywordRetriever
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 keyword relevance from the document store. |
Init Parameters
These are the parameters you can configure in Pipeline Builder:
| Parameter | Type | Default | Description |
|---|---|---|---|
document_store | OracleDocumentStore | The Oracle 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?