PropositionVectorIndexConvergence

Makes the proposition vector index once there is a model to make it at.

THE INDEX IS CREATED AT THE EMBEDDING MODEL'S DIMENSION, so a host that starts without a model cannot register one — DiceStorageAutoConfiguration.propositionVectorIndexSchema contributes an empty catalog instead, rather than guessing a dimension and accepting writes a real model would disagree with. That is still right.

What was wrong was the sentence after it: "the catalog is rebuilt on the next boot, by which time a model configured at first run is registered." That held while a host with no model restarted after one was configured. The Embabel appliance stopped restarting — a provider key now takes effect per call — so the next boot never comes, and the index was never made at all. Observed: the model came alive and was used, and every read failed with "There is no such vector schema index".

A CATALOG CANNOT ANSWER THIS. SchemaCatalog holds materialised specs, and SchemaManager snapshots the catalog beans when it is built, so nothing registered later is ever seen and re-running enforce() applies the same empty catalog. The index has to be ensured directly.

WHO CALLS IT IS THE HOST'S BUSINESS. Only the host knows when a model has appeared — it is the one that took the key. Dice provides the capability and no trigger: no polling, no listener for an event this library cannot see, and nothing that runs unasked.

Idempotent, because IndexManager.ensure is: calling it when the index already exists is a no-op, so a host may call it on every provider change without checking first.

Types

Link copied to clipboard
object Companion

Functions

Link copied to clipboard

Ensure the index, and say whether there is one now.