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/v0.30.0
vault / meilisearch / v0.30.0

meilisearch @ v0.30.0

integrity

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

release notes

This release introduces index deployment with zero downtime and adds task management features. It also brings the capability to navigate search results by page selection.

Thanks to Hacktoberfest, tons of updates and bug fixes have been done by the fantastic Meilisearch community. You were more present than ever, and words cannot do justice to just how grateful we are for your support. A big thank you from the whole Meilisearch team! ❤️

🧰 Most integrations (SDKs, clients, libraries) will be compatible with this version within four hours of the release. Sometimes this can take up to 48 hours, depending on the issues we encounter during the release.

Here is the exhaustive list of integrations not immediately compatible with v0.30.0:

New features and improvements 🔥

Improve search result navigation: exhaustive number of search results

When paginating search results with offset and limit, Meilisearch only returns an estimate of the total number of results. Since estimatedTotalHits can change, creating reliable pagination interfaces with numbered page selectors is challenging.

v0.30 introduces two new search parameters, page and hitsPerPage. Queries with these parameters return an exhaustive number of totalHits and totalPages, which you can then use to create UI elements such as numbered page selectors.

The following example fetches the second page of results for a given query:

curl \
  -X POST 'http://localhost:7700/indexes/movies/search' \
  -H 'Content-Type: application/json' \
  --data-binary '{ "q": "shifu", "page": "2", "hitsPerPage": "10" }'
{
    "hits": [
        // … 10 hits
    ],
    // …
    "page": 2,
    "hitsPerPage": 10,
    "totalHits": 2100,
    "totalPages": 210
}

Done in #2601 by @ManyTheFish.

Cancel processing and enqueued tasks

Meilisearch now allows you to cancel enqueued or processing tasks through a new API route, /tasks/cancel. This can be useful when you need to interrupt a task that is taking too much time to be completed or enqueued by mistake.

To cancel tasks, filter them by specifying one of the following query parameters: uids, statuses, types, or indexUids.

Tasks can be filtered by date fields:

For example, to cancel tasks by uid:

curl \
  -X POST 'http://localhost:7700/tasks/cancel?uids=1,2'
{
  "taskUid": 1,
  "indexUid": "null",
  "status": "enqueued",
  "type": "taskCancelation",
  "enqueuedAt": "2021-08-12T10:00:00.000000Z"
}

To cancel all enqueued tasks across all indexes in an instance:

curl \
  -X POST 'http://localhost:7700/tasks/cancel?statuses=enqueued'

Read more about cancelling tasks.

Done in #2763 by @irevoire, @Kerollmops and @loiclec.

Delete the task history

This release introduces a new DELETE endpoint to the /tasks route. You can use it to remove finished tasks (succeeded, failed or canceled) from Meilisearch's task history. This can be helpful in reducing the amount of occupied disk space.

To delete finished tasks, filter them by specifying one of the following query parameters: uids, statuses, types, indexUids, or canceledBy.

Tasks can be filtered by date fields:

For example, to delete tasks by uid:

curl \
  -X DELETE 'http://localhost:7700/tasks?uids=1,2'
{
  "taskUid": 3,
  "indexUid": null,
  "status": "enqueued",
  "type": "taskDeletion",
  "enqueuedAt": "2021-08-12T10:00:00.000000Z"
}

To delete all finished tasks in an instance:

curl \
  -X DELETE 'http://localhost:7700/tasks?statuses=failed,succeeded,canceled'

Read more about deleting finished tasks.

Done in #2763 by @irevoire, @Kerollmops, and @loiclec.

Deploy indexes with zero downtime

Deploy new indexes version with zero downtime to the search clients. Meilisearch now provides a seamless way to deploy multiple indexes atomically with the new swap indexes API.

To swap indexes, use the new /swap-indexes route:

curl \
  -X POST 'http://localhost:7700/swap-indexes'\
  -H 'Content-Type: application/json' \
  --data-binary '[
      { "indexes": ["indexA", "indexB"] }
  ]'
{
  "taskUid": 3,
  "indexUid": null,
  "status": "enqueued",
  "type": "indexSwap",
  "enqueuedAt": "2021-08-12T10:00:00.000000Z"
}

Read more about swapping indexes.

Done in #2763 by @irevoire, @Kerollmops, and @loiclec.

Configuration file support

You can now use a configuration file to set instance options.

By default, Meilisearch will search the working directory for a file named ./config.toml.

You can use the --config-file-path option if you want to keep your configuration file in another directory:

meilisearch --config-file-path="./my-config.toml"

Example of configuration file:

env = "production"
master_key = "MY_MASTER_KEY"
schedule_snapshot = true

You can download a default configuration file from our repository:

curl https://raw.githubusercontent.com/meilisearch/meilisearch/main/config.toml > config.toml

Read more about customizing Meilisearch with a configuration file.

Done in #2745, #2928, #2804, #2841, and #2961 by @mlemesle, @choznerol, @arriven, @LunarMarathon and @curquiza,

Other improvements

Behavior changes ⚠️

Fixes 🐞

Misc

❤️ Thanks again to our external contributors:

download

unix · zip
curl -fL -o v0.30.0.zip https://ratatoskr.space/pkg/meilisearch/v0.30.0.zip
                    printf '%s  %s\n' 'c357e916d719fba3ccb51f2f718ffd04fa825e7cfecf8df0d1597a0e73bf8bb2' 'v0.30.0.zip' | sha256sum -c -
windows · zip
$url = "https://ratatoskr.space/pkg/meilisearch/v0.30.0.zip"
$out = "v0.30.0.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "c357e916d719fba3ccb51f2f718ffd04fa825e7cfecf8df0d1597a0e73bf8bb2") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o v0.30.0.tar.gz https://ratatoskr.space/pkg/meilisearch/v0.30.0.tar.gz
                    printf '%s  %s\n' 'a962b1df06c1633f25782a0fbb52cfd3bf2b3c783288360d4e36d37af78deafd' 'v0.30.0.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "https://ratatoskr.space/pkg/meilisearch/v0.30.0.tar.gz"
$out = "v0.30.0.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "a962b1df06c1633f25782a0fbb52cfd3bf2b3c783288360d4e36d37af78deafd") { throw "sha256 mismatch" }
download via yggdrasil mesh
unix · zip
curl -fL -o v0.30.0.zip http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v0.30.0.zip
                    printf '%s  %s\n' 'c357e916d719fba3ccb51f2f718ffd04fa825e7cfecf8df0d1597a0e73bf8bb2' 'v0.30.0.zip' | sha256sum -c -
windows · zip
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v0.30.0.zip"
$out = "v0.30.0.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "c357e916d719fba3ccb51f2f718ffd04fa825e7cfecf8df0d1597a0e73bf8bb2") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o v0.30.0.tar.gz http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v0.30.0.tar.gz
                    printf '%s  %s\n' 'a962b1df06c1633f25782a0fbb52cfd3bf2b3c783288360d4e36d37af78deafd' 'v0.30.0.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v0.30.0.tar.gz"
$out = "v0.30.0.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "a962b1df06c1633f25782a0fbb52cfd3bf2b3c783288360d4e36d37af78deafd") { throw "sha256 mismatch" }
artifact format size hashes
v0.30.0.zip zip 13.0 MiB
blake3-24 234f25be2092055f6dbcac8356f4caebd07acdd3bbc818ad
sha256 c357e916d719fba3ccb51f2f718ffd04fa825e7cfecf8df0d1597a0e73bf8bb2
sha1 dc9a85fe18393de241fb93ec395d56b960ba54dc
v0.30.0.tar.gz tar.gz 12.8 MiB
blake3-24 2bf49cb2f171fb31d05a93947bea8fd1ed686ac6501651b3
sha256 a962b1df06c1633f25782a0fbb52cfd3bf2b3c783288360d4e36d37af78deafd
sha1 3eb064a782f8fb4dd9ac1ee72c93d992a99d1d1f

install

bazel
http_archive(
    name = "meilisearch",
    urls = ["https://ratatoskr.space/pkg/meilisearch/v0.30.0.tar.gz"],
    integrity = "sha256-qWKx3wbBYz8leCoPu1LP078rPHgyiDYNTjbTeveN6v0=",
    strip_prefix = "meilisearch-v0.30.0",
)
zig
.url = "https://ratatoskr.space/pkg/meilisearch/v0.30.0.tar.gz",
install via yggdrasil mesh
bazel
http_archive(
    name = "meilisearch",
    urls = ["http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v0.30.0.tar.gz"],
    integrity = "sha256-qWKx3wbBYz8leCoPu1LP078rPHgyiDYNTjbTeveN6v0=",
    strip_prefix = "meilisearch-v0.30.0",
)
zig
.url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v0.30.0.tar.gz",
← v0.29.3v0.29.2 →