Search Settings
The Dynamic Table plugin uses vector-based semantic search to retrieve rows. Search settings control how similarity is measured, how far the system will lower the bar to find results, and whether an LLM reranker should refine them afterward.
Each table (collection) has its own search settings. Navigate to Actions → Plugins → Dynamic Table → Tables, open the table, and go to the Search Settings tab.
Similarity Threshold
The similarity threshold determines the minimum score a row must reach to be included in search results. Scores range from 0 to 1, where 1 is an exact semantic match.
| Setting | Effect |
|---|---|
High threshold (e.g. 0.8) | Only very close matches are returned. Fewer, more precise results. |
Low threshold (e.g. 0.4) | Broader matches are accepted. More results, but potentially less relevant. |
Default: 0.7
Start with the default and adjust based on test search results. If the agent returns too many irrelevant rows, raise the threshold. If it misses rows that should match, lower it.
Tolerance Increment
Tolerance increment automatically lowers the similarity threshold in steps when the search returns fewer results than the configured minimum. This prevents the agent from returning an empty response when a strict threshold yields nothing.
Tolerance Increment Settings
| Setting | Description | Default |
|---|---|---|
| Starting Threshold | The threshold used for the first search attempt. Should match or equal the Similarity Threshold. | 0.7 |
| Minimum Threshold | The lowest threshold the system will try. Stops decrementing here. | 0.3 |
| Threshold Step | How much to reduce the threshold on each retry. | 0.2 |
| Minimum Results | If fewer results are found than this number, decrement and retry. | 1 |
| Maximum Results | The maximum number of rows returned across all retry attempts. | 10 |
How It Works
- Search runs at the starting threshold.
- If the number of results is below the minimum results setting, the threshold is reduced by the threshold step.
- The search runs again at the lower threshold.
- This repeats until either the minimum results are reached, the maximum results cap is hit, or the threshold reaches the minimum threshold.
Example with defaults:
| Attempt | Threshold | Results found |
|---|---|---|
| 1 | 0.7 | 0 → retry |
| 2 | 0.5 | 0 → retry |
| 3 | 0.3 | 2 → return |
Set Minimum Results to 0 to disable tolerance increment and always return results at the base threshold only.
Similarity Score in Results
Enable Return Similarity Score to include the numeric similarity score alongside each result row. This is useful during testing to understand how well rows are matching, but can be omitted in production if you do not want scores visible to the AI.
Default: disabled
LLM Reranker
The reranker is an optional second stage that uses a language model to re-score and reorder results after the vector search. It reads the original user query and the retrieved rows and returns them sorted by relevance.
Use the reranker when:
- The table contains rows with similar wording but different meaning.
- Precision matters more than latency.
- Vector similarity alone is not producing accurate enough results.
Reranker Settings
| Setting | Description | Default |
|---|---|---|
| Enable Reranker | Toggles the LLM reranker on or off. | Off |
| Reranker Max Results | The top N rows to return after reranking. | 5 |
Enabling the reranker adds latency because it requires an additional LLM call after the vector search. Enable it only for tables where search precision is critical.
Regenerating Embeddings
Each row's vector embedding is generated when the row is created or updated. If you change which columns are marked as Searchable, or adjust Search Weight values, existing rows retain their old embeddings and will not reflect the updated configuration.
To rebuild all embeddings for a table:
- Open the table in the Tables tab.
- Click Regenerate Embeddings.
- Confirm the operation.
The system processes rows in batches and shows a progress indicator. The table remains searchable during regeneration, but results may be mixed until the process completes.
Regeneration consumes OpenAI API credits proportional to the number of rows and the size of each row's text content.
When to Regenerate
| Situation | Regenerate? |
|---|---|
| Added a new searchable column | Yes |
| Changed search weight on a column | Yes |
| Removed a column from searchable | Yes |
| Added or edited individual rows | No — rows are re-embedded automatically on save |
| Changed the similarity threshold | No — threshold is applied at query time |
Related Pages
- Create a Table — configure column search weights and searchable flags.
- Test Search — validate search quality after changing these settings.
- Dynamic Table Overview