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

meilisearch @ v1.7.0

integrity

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

release notes

Meilisearch v1.7.0 focuses on improving v1.6.0 features, indexing speed and hybrid 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 🔥

Improved AI-powered search — Experimental

To activate AI-powered search, set vectorStore to true in the /experimental-features route. Consult the Meilisearch documentation for more information.

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

New OpenAI embedding models

When configuring OpenAI embedders), you can now specify two new models:

These new models are cheaper and improve search result relevancy.

Custom OpenAI model dimensions

You can configure dimensions for sources using the new OpenAI models: text-embedding-3-small and text-embedding-3-large. Dimensions must be bigger than 0 and smaller than the model size:

"embedders": {
  "new_model": {
    "source": "openAi",
    "model": "text-embedding-3-large",
    "dimensions": 512 // must be >0, must be <= 3072 for "text-embedding-3-large"
  },
  "legacy_model": {
    "source": "openAi",
    "model": "text-embedding-ada-002"
  }
}

You cannot customize dimensions for older OpenAI models such as text-embedding-ada-002. Setting dimensions to any value except the default size of these models will result in an error.

Done in #4375 by @Gosti.

GPU support when computing Hugging Face embeddings

Activate CUDA to use Nvidia GPUs when computing Hugging Face embeddings. This can significantly improve embedding generation speeds.

To enable GPU support through CUDA for HuggingFace embedding generation:

  1. Install CUDA dependencies
  2. Clone and compile Meilisearch with the cuda feature: cargo build --release --package meilisearch --features cuda
  3. Launch your freshly compiled Meilisearch binary
  4. Activate vector search
  5. Add a Hugging Face embedder

Done by @dureuill in #4304.

Improved indexing speed and reduced memory crashes

Stabilized showRankingScoreDetails

The showRankingScoreDetails search parameter, first introduce as an experimental feature in Meilisearch v1.3.0, is now a stable feature.

Use it with the /search endpoint to view detailed scores per ranking rule for each returned document:

curl \
  -X POST 'http://localhost:7700/indexes/movies/search' \
  -H 'Content-Type: application/json' \
  --data-binary '{ "q": "Batman Returns", "showRankingScoreDetails": true }'

When showRankingScoreDetails is set to true, returned documents include a _rankingScoreDetails field:

"_rankingScoreDetails": {
  "words": {
    "order": 0,
    "matchingWords": 1,
    "maxMatchingWords": 1,
    "score": 1.0
  },
  "typo": {
    "order": 1,
    "typoCount": 0,
    "maxTypoCount": 1,
    "score": 1.0
  },
  "proximity": {
    "order": 2,
    "score": 1.0
  },
  "attribute": {
    "order": 3,
    "attributes_ranking_order": 0.8,
    "attributes_query_word_order": 0.6363636363636364,
    "score": 0.7272727272727273
  },
  "exactness": {
    "order": 4,
    "matchType": "noExactMatch",
    "matchingWords": 0,
    "maxMatchingWords": 1,
    "score": 0.3333333333333333
  }
}

Done by @dureuill in #4389.

Improved logging

Done by @irevoire in #4391

Log output modified

Log messages now follow a different pattern:

# new format ✅
2024-02-06T14:54:11Z INFO actix_server::builder: 200: starting 10 workers
# old format ❌
[2024-02-06T14:54:11Z INFO  actix_server::builder] starting 10 workers

⚠️ This change may impact you if you have any automated tasks based on log output.

Log output format — Experimental

You can now configure Meilisearch to output logs in JSON.

Relaunch your instance passing json to the --experimental-logs-mode command-line option:

./meilisearch --experimental-logs-mode json

--experimental-logs-format accepts two values:

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

⚠️ Experimental features may be incompatible between Meilisearch versions.

New /logs/stream and /logs/stderr routes — Experimental

Meilisearch v1.7 introduces 2 new experimental API routes: /logs/stream and /logs/stderr.

Use the /experimental-features route to activate both routes during runtime:

curl \
  -X PATCH 'http://localhost:7700/experimental-features/' \
  -H 'Content-Type: application/json'  \
--data-binary '{
    "logsRoute": true
  }'

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

⚠️ Experimental features may be incompatible between Meilisearch versions.

/logs/stream

Use the POST endpoint to output logs in a stream. The following example disables actix logging and keeps all other logs at the DEBUG level:

curl \
  -X POST http://localhost:7700/logs/stream \
  -H 'Content-Type: application/json' \
  --data-binary '{
      "mode": "human",
      "target": "actix=off,debug"
    }'

This endpoint requires two paramaters:

Use the DELETE endpoint of /logs/stream to interrupt a stream:

curl -X DELETE http://localhost:7700/logs/stream

You may only have one listener at a time. Meilisearch log streams are not compatible with xh or httpie.

/logs/stderr

Use the POST endpoint to configure the default log output for non-stream logs:

curl \
  -X POST http://localhost:7700/logs/stream \
  -H 'Content-Type: application/json' \
  --data-binary '{
      "target": "debug"
    }'

/logs/stderr accepts one parameter:

Other improvements

Fixes 🐞

Misc

❤️ Thanks again to our external contributors:

download

unix · zip
curl -fL -o v1.7.0.zip https://ratatoskr.space/pkg/meilisearch/v1.7.0.zip
                    printf '%s  %s\n' '2ea1700eb95acfa1655630b0688fd1db6ddaf7868ad193dad4b5ea47bfcf7c73' 'v1.7.0.zip' | sha256sum -c -
windows · zip
$url = "https://ratatoskr.space/pkg/meilisearch/v1.7.0.zip"
$out = "v1.7.0.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "2ea1700eb95acfa1655630b0688fd1db6ddaf7868ad193dad4b5ea47bfcf7c73") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o v1.7.0.tar.gz https://ratatoskr.space/pkg/meilisearch/v1.7.0.tar.gz
                    printf '%s  %s\n' '127fa43e24adf8919cb3668a173b8a1710ce44d367afbfda82aedcea5b1f82d5' 'v1.7.0.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "https://ratatoskr.space/pkg/meilisearch/v1.7.0.tar.gz"
$out = "v1.7.0.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "127fa43e24adf8919cb3668a173b8a1710ce44d367afbfda82aedcea5b1f82d5") { throw "sha256 mismatch" }
download via yggdrasil mesh
unix · zip
curl -fL -o v1.7.0.zip http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v1.7.0.zip
                    printf '%s  %s\n' '2ea1700eb95acfa1655630b0688fd1db6ddaf7868ad193dad4b5ea47bfcf7c73' 'v1.7.0.zip' | sha256sum -c -
windows · zip
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v1.7.0.zip"
$out = "v1.7.0.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "2ea1700eb95acfa1655630b0688fd1db6ddaf7868ad193dad4b5ea47bfcf7c73") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o v1.7.0.tar.gz http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v1.7.0.tar.gz
                    printf '%s  %s\n' '127fa43e24adf8919cb3668a173b8a1710ce44d367afbfda82aedcea5b1f82d5' 'v1.7.0.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v1.7.0.tar.gz"
$out = "v1.7.0.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "127fa43e24adf8919cb3668a173b8a1710ce44d367afbfda82aedcea5b1f82d5") { throw "sha256 mismatch" }
artifact format size hashes
v1.7.0.zip zip 14.7 MiB
blake3-24 80898a1eaea99ef498e608bbfafcfd4f4a3d8d4ad3f6b7c1
sha256 2ea1700eb95acfa1655630b0688fd1db6ddaf7868ad193dad4b5ea47bfcf7c73
sha1 901fbc8e61ca9615fcf6f87b59e7e142a1fffb56
v1.7.0.tar.gz tar.gz 14.2 MiB
blake3-24 82bcd9a26fe022510697de7df24ff7571bde2c32b7eb20cd
sha256 127fa43e24adf8919cb3668a173b8a1710ce44d367afbfda82aedcea5b1f82d5
sha1 f8eb76630d76db0e4c84c92c375f1c5bad124ede

install

bazel
http_archive(
    name = "meilisearch",
    urls = ["https://ratatoskr.space/pkg/meilisearch/v1.7.0.tar.gz"],
    integrity = "sha256-En+kPiSt+JGcs2aKFzuKFxDORNNnr7/agq7c6lsfgtU=",
    strip_prefix = "meilisearch-v1.7.0",
)
zig
.url = "https://ratatoskr.space/pkg/meilisearch/v1.7.0.tar.gz",
install via yggdrasil mesh
bazel
http_archive(
    name = "meilisearch",
    urls = ["http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v1.7.0.tar.gz"],
    integrity = "sha256-En+kPiSt+JGcs2aKFzuKFxDORNNnr7/agq7c6lsfgtU=",
    strip_prefix = "meilisearch-v1.7.0",
)
zig
.url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v1.7.0.tar.gz",
← v1.7.1v1.6.2 →