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.6.0
vault / meilisearch / v1.6.0

meilisearch @ v1.6.0

integrity

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

release notes

Meilisearch v1.6 focuses on improving indexing performance. This new release also adds hybrid search and simplifies the process of generating embeddings for semantic search.

🧰 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 improvements 🔥

Experimental: Automated embeddings generation for vector search

With v1.6, you can configure Meilisearch so it automatically generates embeddings using either OpenAI or HuggingFace. If neither of these third-party options suit your application, you may provide your own embeddings manually:

Usage

Use the embedders index setting to configure embedders. You may set multiple embedders for an index. This example defines 3 embedders named default, image and translation:

curl \
  -X PATCH 'http://localhost:7700/indexes/movies/settings' \
  -H 'Content-Type: application/json' \
  --data-binary '{
    "embedders": {
      "default": {
        "source":  "openAi",
        "apiKey": "<your-OpenAI-API-key>",
        "model": "text-embedding-ada-002",
        "documentTemplate": "A movie titled \'{{doc.title}}\' whose description starts with {{doc.overview|truncatewords: 20}}"
      },
      "image": {
        "source": "userProvided",
        "dimensions": 512,
      },
      "translation": {
        "source": "huggingFace",
        "model": "sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2",
        "documentTemplate": "A movie titled \'{{doc.title}}\' whose description starts with {{doc.overview|truncatewords: 20}}"
      }
    }
  }'

Refer to the documentation for more vector search usage instructions.

⚠️ Vector search breaking changes

If you have used vector search between v1.3.0 and v1.5.0, API usage has changed with v1.6:

"embedders": {
    "default": {
      "source": "userProvided",
      "dimensions": 512
    }
}
"_vectors": { "image2text": [0.0, 0.1, …] } # ✅
"_vectors": [ [0.0, 0.1] ] # ❌

Done in #4226 by @dureuill, @irevoire, @Kerollmops and @ManyTheFish.

Experimental: Hybrid search

This release introduces hybrid search functionality. Hybrid search allows users to mix keyword and semantic search at search time.

Use the hybrid search parameter to perform a hybrid search:

curl \
  -X POST 'http://localhost:7700/indexes/movies/search' \
  -H 'Content-Type: application/json' \
  --data-binary '{
    "q": "Plumbers and dinosaurs",
    "hybrid": {
        "semanticRatio": 0.9,
        "embedder": "default"
    }
  }'

[!TIP] The new vector search functionality uses Arroy, a Rust library developed by the Meilisearch engine team. Check out @Kerollmops blog post describing the whole process.

Done in #4226 by @dureuill, @irevoire, @Kerollmops and @ManyTheFish.

Improve indexing speed

This version introduces significant indexing performance improvements. Meilisearch v1.6 has been optimized to:

On an e-commerce dataset of 2.5Gb of documents, these changes led to more than a 50% time reduction when adding documents for the first time. When updating documents frequently and partially, re-indexing performance hovers between 50% and 75%.

⚠️ Performance improvements depend on your dataset, your machine, and how you're indexing documents.

Done in #4090 by @ManyTheFish, @dureuill and @Kerollmops.

Disk space usage reduction

Meilisearch now stores less internal data. This leads to smaller database disk sizes.

With a ~15Mb dataset, the created database is 40% and 50% smaller. Additionally, the database size has become more stable and will display more modest growth with new document additions.

Proximity precision and performance

You can now customize the accuracy of the proximity ranking rule.

Computing this ranking rule uses a significant amount of resources and may lead to increased indexing times. Lowering its precision may lead to significant performance gains. In a minority of use cases, lower proximity precision may also impact relevancy for queries using multiple search terms.

Usage

curl \
  -X PATCH 'http://localhost:7700/indexes/books/settings/proximity-precision' \
  -H 'Content-Type: application/json'  \
  --data-binary '{
    "proximityPrecision": "byAttribute"
  }'

proximityPrecision accepts either byWord or byAttribute:

Done in #4225 by @ManyTheFish.

Experimental: Limit the number of batched tasks

Meilisearch may occasionally batch too many tasks together, which may lead to system instability. Relaunch Meilisearch with the --experimental-max-number-of-batched-tasks configuration option to address this issue:

./meilisearch --experimental-max-number-of-batched-tasks 100

You may also configure --experimental-max-number-of-batched-tasks as an environment variable or directly in the config file with MEILI_EXPERIMENTAL_MAX_NUMBER_OF_BATCHED_TASKS.

Done in #4249 by @Kerollmops

Task queue webhook

This release introduces a configurable webhook url that will be called whenever Meilisearch finishes processing a task.

Relaunch Meilisearch using --task-webhook-url and --task-webhook-authorization-header to use the webhook:

./meilisearch \
  --task-webhook-url=https://example.com/example-webhook?foo=bar&number=8 \
  --task-webhook-authorization-header=Bearer aSampleAPISearchKey

You may also define the webhook URL and header with environment variables or in the configuration file with MEILI_TASK_WEBHOOK_URL and MEILI_TASK_WEBHOOK_AUTHORIZATION_HEADER.

Done by @irevoire in #4238

Fixes 🐞

Misc

❤️ Thanks again to our external contributors: @Karribalu, and @vivek-26

download

unix · zip
curl -fL -o v1.6.0.zip https://ratatoskr.space/pkg/meilisearch/v1.6.0.zip
                    printf '%s  %s\n' '725bdacca5ae1514f5b9169746bfe635b958105ab2cff48448cf5cd46d3d7869' 'v1.6.0.zip' | sha256sum -c -
windows · zip
$url = "https://ratatoskr.space/pkg/meilisearch/v1.6.0.zip"
$out = "v1.6.0.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "725bdacca5ae1514f5b9169746bfe635b958105ab2cff48448cf5cd46d3d7869") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o v1.6.0.tar.gz https://ratatoskr.space/pkg/meilisearch/v1.6.0.tar.gz
                    printf '%s  %s\n' '1f3270ab873f8056eb0b001370fb7bb5a5fd19fb1d85f9dd23b6be572ce237af' 'v1.6.0.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "https://ratatoskr.space/pkg/meilisearch/v1.6.0.tar.gz"
$out = "v1.6.0.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "1f3270ab873f8056eb0b001370fb7bb5a5fd19fb1d85f9dd23b6be572ce237af") { throw "sha256 mismatch" }
download via yggdrasil mesh
unix · zip
curl -fL -o v1.6.0.zip http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v1.6.0.zip
                    printf '%s  %s\n' '725bdacca5ae1514f5b9169746bfe635b958105ab2cff48448cf5cd46d3d7869' 'v1.6.0.zip' | sha256sum -c -
windows · zip
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v1.6.0.zip"
$out = "v1.6.0.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "725bdacca5ae1514f5b9169746bfe635b958105ab2cff48448cf5cd46d3d7869") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o v1.6.0.tar.gz http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v1.6.0.tar.gz
                    printf '%s  %s\n' '1f3270ab873f8056eb0b001370fb7bb5a5fd19fb1d85f9dd23b6be572ce237af' 'v1.6.0.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v1.6.0.tar.gz"
$out = "v1.6.0.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "1f3270ab873f8056eb0b001370fb7bb5a5fd19fb1d85f9dd23b6be572ce237af") { throw "sha256 mismatch" }
artifact format size hashes
v1.6.0.zip zip 14.7 MiB
blake3-24 c04f60b91cc7ead47ec72cfada902f2a8b57b9a1cbf6051d
sha256 725bdacca5ae1514f5b9169746bfe635b958105ab2cff48448cf5cd46d3d7869
sha1 c955a2291b132a877e67b6ccbbd603c10ef78a20
v1.6.0.tar.gz tar.gz 14.2 MiB
blake3-24 dee821e4b86f5e7dee1d3fc67bc9d7a72d171bac6214e780
sha256 1f3270ab873f8056eb0b001370fb7bb5a5fd19fb1d85f9dd23b6be572ce237af
sha1 0fa15a384dc8ff15a1906b0f1e937a8b8b4ef78e

install

bazel
http_archive(
    name = "meilisearch",
    urls = ["https://ratatoskr.space/pkg/meilisearch/v1.6.0.tar.gz"],
    integrity = "sha256-HzJwq4c/gFbrCwATcPt7taX9GfsdhfndI7a+VyziN68=",
    strip_prefix = "meilisearch-v1.6.0",
)
zig
.url = "https://ratatoskr.space/pkg/meilisearch/v1.6.0.tar.gz",
install via yggdrasil mesh
bazel
http_archive(
    name = "meilisearch",
    urls = ["http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v1.6.0.tar.gz"],
    integrity = "sha256-HzJwq4c/gFbrCwATcPt7taX9GfsdhfndI7a+VyziN68=",
    strip_prefix = "meilisearch-v1.6.0",
)
zig
.url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v1.6.0.tar.gz",
← v1.6.1v1.5.1 →