yggvault ratatoskr-space connected via regular web
Color theme
also available via yggdrasil mesh http://[203:b338:2a84:a18f:986:47ae:1a4:d8d3]/pkg/meilisearch/v1.8.0
vault / meilisearch / v1.8.0

meilisearch @ v1.8.0

integrity

size
14.8 MiB
downloaded
last checked
source https://github.com/meilisearch/meilisearch · available · github

release notes

Meilisearch v1.8 introduces new changes and optimizations related to the Hybrid search with the addition of new models and embedders like REST embedders and the Ollama model. This version also focuses on stability by adding more security around the search requests. Finally, we introduce the negative operator to exclude specific terms from a search query.

🧰 All official Meilisearch integrations (including SDKs, clients, and other tools) are compatible with this Meilisearch release. Integration deployment happens between 4 to 48 hours after a new version becomes available.

Some SDKs might not include all new features. Consult the project repository for detailed information. Is a feature you need missing from your chosen SDK? Create an issue letting us know you need it, or, for open-source karma points, open a PR implementing it (we'll love you for that ❤️).

New features and updates 🔥

Hybrid search

This release introduces a few changes to hybrid search.): a new distribution embedder setting, support for two new embedder sources, and breaking changes to hybrid and semantic search ranking score.

🗣️ This is an experimental feature and we need your help to improve it! Share your thoughts and feedback on this GitHub discussion.

Done by @dureuill and @jakobklemm in #4456, #4537, #4509, #4548, #4549.

⚠️ Breaking changes: _semanticScore

To increase search response times and reduce bandwidth usage:

New embedders: Ollama and generic REST embedder

Ollama model

Ollama is a framework for building and running language models locally. Configure it by supplying an embedder object to the /settings endpoint:

"default": {
  "source": "ollama",
  "url": "http://localhost:11434/api/embeddings",  // optional, fetched from MEILI_OLLAMA_URL environment variable if missing
  "apiKey": "<foobarbaz>",  // optional
  "model": "nomic-embed-text",
  "documentTemplate": "A document titled '{{doc.title}}' whose description starts with {{doc.overview|truncatewords: 20}}"
}

Generic REST embedder

Meilisearch now also supports any embedder with a RESTful interface. Configure it by supplying an embedder object to the /settings endpoint:

"default": {
  "source": "rest",
  "url": "http://localhost:12345/api/v1/embed", //Mandatory, full URL to the embedding endpoint
  "apiKey": "187HFLDH97CNHN", // Optional, passed as Bearer in the Authorization header
  "dimensions": 512, // Optional, inferred with a dummy request if missing
  "documentTemplate": "A document titled '{{doc.title}}' whose description starts with {{doc.overview|truncatewords: 20}}"
  "inputField": ["data", "text"], // Optional, defaults to []
  "inputType": "text", // Optional, either "text" or "textArray", defaults to text
  "query": { // Optional, defaults to {}
    "model": "MODEL_NAME",
    "dimensions": 512
  },
  "pathToEmbeddings": ["data"], // Optional, defaults to []
  "embeddingObject": ["embedding"] // Optional, defaults to []
}

New embedder setting: distribution

Use distribution to apply an affine transformation to the _rankingScore of semantic search results. This can help to compare _rankingScores of semantic and keyword search results and improve result ranking.

"default": {
  "source": "huggingFace",
  "model": "MODEL_NAME",
  "distribution": {  // describes the natural distribution of results
    "mean": 0.7, // mean value
    "sigma": 0.3 // variance
  }
}

Other hybrid search improvements

New feature: Negative keywords

Search queries can now contain a negative keyword to exclude terms from the search. Use the - operator in front of a word or a phrase to make sure no document that contains those words are shown in the results:

curl \
  -X POST 'http://localhost:7700/indexes/places/search' \
  -H 'Content-Type: application/json' \
  --data-binary '{ "q": "-escape room" }'

Done by @Kerollmops in #4535.

Search robustness updates

Search cutoff

To avoid crashes and performance issues, Meilisearch now interrupts search requests that take more than 1500ms to complete.

Use the /settings endpoint to customize this value:

curl \
  -X PATCH 'http://localhost:7700/indexes/movies/settings' \
  -H 'Content-Type: application/json' \
  --data-binary '{
    "searchCutoffMs": 150
  }'

The default value of the searchCutoffMs setting is null and corresponds to a 1500ms timeout.

Done by @irevoire in #4466.

Concurrent search request limits

This release introduces a limit for concurrent search requests to prevent Meilisearch from consuming an unbounded amount of RAM and crashing.

The default number of requests in the queue is 1000. Relaunch your self-hosted instance with --experimental-search-queue-size to change this limit:

./meilisearch --experimental-search-queue-size 100

👉 This limit does NOT impact the search performance. It only affects the number of enqueued search requests to prevent security issues.

🗣️ This is an experimental feature and we need your help to improve it! Share your thoughts and feedback on this GitHub discussion.

Done by @irevoire in #4536

Other improvements

Fixes 🐞

Misc

❤️ Thanks again to our external contributors:

download

unix · zip
curl -fL -o v1.8.0.zip https://ratatoskr.space/pkg/meilisearch/v1.8.0.zip
                    printf '%s  %s\n' '57e8e3eb0c0f45db20211231c4eeeee2b3bb70dff5d1098bafb371003a2bdb4c' 'v1.8.0.zip' | sha256sum -c -
windows · zip
$url = "https://ratatoskr.space/pkg/meilisearch/v1.8.0.zip"
$out = "v1.8.0.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "57e8e3eb0c0f45db20211231c4eeeee2b3bb70dff5d1098bafb371003a2bdb4c") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o v1.8.0.tar.gz https://ratatoskr.space/pkg/meilisearch/v1.8.0.tar.gz
                    printf '%s  %s\n' 'fecf02006a60d2915ad6bd57a30b5a061c1ff83f66e91bf3fe5b03288fd0e512' 'v1.8.0.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "https://ratatoskr.space/pkg/meilisearch/v1.8.0.tar.gz"
$out = "v1.8.0.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "fecf02006a60d2915ad6bd57a30b5a061c1ff83f66e91bf3fe5b03288fd0e512") { throw "sha256 mismatch" }
download via yggdrasil mesh
unix · zip
curl -fL -o v1.8.0.zip http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v1.8.0.zip
                    printf '%s  %s\n' '57e8e3eb0c0f45db20211231c4eeeee2b3bb70dff5d1098bafb371003a2bdb4c' 'v1.8.0.zip' | sha256sum -c -
windows · zip
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v1.8.0.zip"
$out = "v1.8.0.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "57e8e3eb0c0f45db20211231c4eeeee2b3bb70dff5d1098bafb371003a2bdb4c") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o v1.8.0.tar.gz http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v1.8.0.tar.gz
                    printf '%s  %s\n' 'fecf02006a60d2915ad6bd57a30b5a061c1ff83f66e91bf3fe5b03288fd0e512' 'v1.8.0.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v1.8.0.tar.gz"
$out = "v1.8.0.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "fecf02006a60d2915ad6bd57a30b5a061c1ff83f66e91bf3fe5b03288fd0e512") { throw "sha256 mismatch" }
artifact format size hashes
v1.8.0.zip zip 14.8 MiB
blake3-24 99fe40cd269e3054e1b3a7ba0281f86ea53804b29cf7a3f9
sha256 57e8e3eb0c0f45db20211231c4eeeee2b3bb70dff5d1098bafb371003a2bdb4c
sha1 bd893b66e485da6dbe9d9f3a4f43565f1c22bc85
v1.8.0.tar.gz tar.gz 14.2 MiB
blake3-24 b5a7e62670e6797242a14c80c18ae762abedf61d99201afd
sha256 fecf02006a60d2915ad6bd57a30b5a061c1ff83f66e91bf3fe5b03288fd0e512
sha1 7d855d8b3f0d6869348c33c9d9adabec98307ef4

install

bazel
http_archive(
    name = "meilisearch",
    urls = ["https://ratatoskr.space/pkg/meilisearch/v1.8.0.tar.gz"],
    integrity = "sha256-/s8CAGpg0pFa1r1XowtaBhwf+D9m6Rvz/lsDKI/Q5RI=",
    strip_prefix = "meilisearch-v1.8.0",
)
zig
.url = "https://ratatoskr.space/pkg/meilisearch/v1.8.0.tar.gz",
install via yggdrasil mesh
bazel
http_archive(
    name = "meilisearch",
    urls = ["http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v1.8.0.tar.gz"],
    integrity = "sha256-/s8CAGpg0pFa1r1XowtaBhwf+D9m6Rvz/lsDKI/Q5RI=",
    strip_prefix = "meilisearch-v1.8.0",
)
zig
.url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v1.8.0.tar.gz",
← v1.8.1v1.7.6 →