Choosing the embedding model, non-English content, and changing it later.
Hive vectorizes every neuron with a local embedding model so semantic search works without sending your content to any third-party API. Which model it uses decides how well search works in your language.
Two models ship inside the image. Neither is downloaded at runtime — including when you switch between them, so this works on an air-gapped install.
| English default | International | |
|---|---|---|
| Setting | EMBEDDING_MODEL=english |
EMBEDDING_MODEL=international |
| Model | nomic-embed-text-v1.5 |
snowflake-arctic-embed-m-v2.0 |
| Languages | English | 70+, including German, French, Spanish, Portuguese, Japanese |
| Container memory | 2 GB minimum | 4 GB minimum |
It does not throw an error, which is what makes it worth explaining. Content in German, French or Japanese is accepted, embedded, and returned by search — just less accurately, in two specific ways.
schön to schon — a different German word.
Umlauts and ß are lost before the text is ever embedded.
The practical rule: if a meaningful share of your neurons is not in English, choose International. A brain that is mostly English with the occasional foreign name or quotation is fine on the default.
Set the environment variable when you first start the container:
docker run -d \
-e DATABASE_URL=... \
-e ADMIN_PASSWORD=... \
-e EMBEDDING_MODEL=international \
--memory 4g \
aiqbee/hive-server:latest
--memory, Kubernetes
resources.limits.memory, Compose mem_limit.
EMBEDDING_MODEL is read only when a Hive is first set
up. Once neurons have been embedded it is ignored, and editing it in your
deployment config does nothing except raise a notice on the Configuration page.
That is deliberate: changing the model means re-processing every neuron in every brain, and a redeploy must never silently start doing that. Instead, change it from Configuration → Embedding model in the admin UI. You will see how many neurons are affected and an estimated duration before confirming.
The embedding model handles the semantic half of search. The keyword half
matches on the text itself and works with accented characters in any of Hive's
supported languages — a search for Müller matches
Müller.
One limitation worth knowing for German: keyword matching finds a compound noun
when you search for its ending (Versicherung matches
Rechtsschutzversicherung) but not the reverse — searching for the
full compound will not match a neuron that only mentions its parts separately. The
semantic half is what bridges that, which is another reason to run International on
a German corpus.