> ## Documentation Index
> Fetch the complete documentation index at: https://docs.zylon.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Omnisearch

> Configure Omnisearch languages and query length.

<Warning>
  **Upcoming release — Zylon 1.58**

  These docs are published ahead of release so you can prepare your API integrations. The release image is not yet available. For installations running 1.57, use the [1.57 documentation](/en/v1.57/overview).
</Warning>

Omnisearch combines keyword and semantic search across projects, chats, artifacts, and artifact content.

## Configuration

```yaml theme={null}
languages:
  keywordSearch: ["en", "es", "de"]

omnisearch:
  maxQueryCharacters: 80
```

| Key | Default | Values | Description |
| - | - | - | - |
| `languages.keywordSearch` | `["en"]` | List of supported language codes | Selects the PostgreSQL text-search dictionaries used to index and rank keyword matches. |
| `omnisearch.maxQueryCharacters` | `80` | Integer greater than or equal to `3` | Sets the maximum length accepted for a search query after leading and trailing whitespace is removed. |

After changing the configuration, run `sudo zylon-cli sync`.

## How language configuration works

`languages.keywordSearch` affects keyword search only. For every configured language, Zylon builds and queries a language-specific PostgreSQL full-text index. Configure every language used by your projects, chats, and documents so stemming and keyword ranking use the appropriate dictionaries.

Semantic artifact-content search follows a separate path: it sends the query to PrivateGPT and uses the enabled embedding model. Therefore, semantic language coverage depends on that embedding model, not on `languages.keywordSearch` or the multimodal chat model.

For multilingual semantic retrieval, enable the multilingual capability for your selected AI preset:

```yaml theme={null}
ai:
  preset: "baseline-48g,capabilities.multilingual"
```

This capability selects the `multilingual-e5-large` embedding model. See [AI preset capabilities](/en/v1.58/operator-manual/ai-presets/configuration).

<Warning>
  Do not leave `languages.keywordSearch` empty. Omnisearch rejects requests when no keyword-search language is configured. Unsupported language codes also cause an error.
</Warning>

### Supported keyword-search languages

| Language | Code | Language | Code |
| - | - | - | - |
| Arabic | `ar` | Armenian | `hy` |
| Basque | `eu` | Catalan | `ca` |
| Danish | `da` | Dutch | `nl` |
| English | `en` | Finnish | `fi` |
| French | `fr` | German | `de` |
| Greek | `el` | Hindi | `hi` |
| Hungarian | `hu` | Indonesian | `id` |
| Irish | `ga` | Italian | `it` |
| Lithuanian | `lt` | Nepali | `ne` |
| Norwegian | `no` | Portuguese | `pt` |
| Romanian | `ro` | Russian | `ru` |
| Serbian | `sr` | Spanish | `es` |
| Swedish | `sv` | Tamil | `ta` |
| Turkish | `tr` | Yiddish | `yi` |

Language codes are case-insensitive. Duplicate entries are removed.

## Query-length behavior

Search queries must contain at least three characters. `omnisearch.maxQueryCharacters` changes the upper limit enforced by the backend, the Workspace API, and the Workspace search field.

<Note>
  Keep the default value of `80` unless your users need longer queries. The same configured limit applies to both API requests and the Workspace search field.
</Note>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.