Docs/Using Plugins/Search Settings

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.

SettingEffect
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

SettingDescriptionDefault
Starting ThresholdThe threshold used for the first search attempt. Should match or equal the Similarity Threshold.0.7
Minimum ThresholdThe lowest threshold the system will try. Stops decrementing here.0.3
Threshold StepHow much to reduce the threshold on each retry.0.2
Minimum ResultsIf fewer results are found than this number, decrement and retry.1
Maximum ResultsThe maximum number of rows returned across all retry attempts.10

How It Works

  1. Search runs at the starting threshold.
  2. If the number of results is below the minimum results setting, the threshold is reduced by the threshold step.
  3. The search runs again at the lower threshold.
  4. 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:

AttemptThresholdResults found
10.70 → retry
20.50 → retry
30.32 → 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

SettingDescriptionDefault
Enable RerankerToggles the LLM reranker on or off.Off
Reranker Max ResultsThe 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:

  1. Open the table in the Tables tab.
  2. Click Regenerate Embeddings.
  3. 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

SituationRegenerate?
Added a new searchable columnYes
Changed search weight on a columnYes
Removed a column from searchableYes
Added or edited individual rowsNo — rows are re-embedded automatically on save
Changed the similarity thresholdNo — threshold is applied at query time