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

meilisearch @ v1.2.0

integrity

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

release notes

Meilisearch v1.2 introduces new filter operators IS NULL and IS EMPTY, a new route to delete documents with filters, and significant relevancy and performance updates.

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

Delete documents by filter

Meilisearch v1.2 allows you to use filters to delete documents with the new /documents/delete route:

curl -X POST http://localhost:7700/indexes/dogs/documents/delete \
  -H 'Content-Type: application/json' \
  --data-binary '{ "filter": ["doggo = 'bernese mountain'", "face = cute"] }'

Fields must be set as filterable before you can use them as filters.

Meilisearch will return a summarized task object:

{
  "taskUid": 242,
  "indexUid": "dogs",
  "status": "enqueued",
  "type": "documentDeletion",
  "enqueuedAt": "2023-05-03T11:01:58.721841Z"
}

Use the returned taskUid with the task route to check the task status.

Done by @dureuill and @irevoire in #3550.

Get documents by filter

You can now use filters in the GET endpoint of the /documents route:

curl -X GET 'http://localhost:7700/indexes/dogs/documents?limit=1&filter=doggo=bernese'

You can also use the new /documents/fetch route to handle complex filters:

curl -X POST http://localhost:7700/indexes/dogs/documents/fetch \
  -H 'Content-Type: application/json' \
  --data-binary '{ "limit": 1, "filter": "doggo = bernese" }'

/documents/fetch accepts following parameters: limit, offset, fields, and filter.

Fields must be set as filterable before you can use them as filters.

Done by @dureuill and @irevoire in #3570.

New filter operators: IS EMPTY and IS NULL

This release introduces two new filter operators. IS EMPTY matches existing fields with a valid, but empty value. IS NULL matches existing fields with an explicit null value.

Given the following documents:

[{
    "id": 0,
    "color": []
},
{
    "id": 1,
    "color": null
},
{
    "id": 2,
},
]

color IS EMPTY matches document 0.

color IS NULL matches document 1.

Both operators can be used together with the NOT operator: color IS NOT EMPTY and NOT color IS EMPTY match document 1. color IS NOT NULL and NOT color IS NULL match document 0.

Neither operator will match documents missing the specified field.

Done by @Kerollmops in #3571.

Improve relevancy and search performance

The search engine has seen significant refactoring. This brings performance and relevancy improvements, as well as setting the foundations for new features related to search customization. Stay tuned!

If you have any questions or experience unexpected behavior, feel free to reach out.

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

Performance improvements

Relevancy improvements

Automated task deletion

Maximum number of tasks the task queue can hold now limited to 1M. Fixes issues with enqueuing new tasks when the database is full.

Once the task queue reaches this limit, Meilisearch will try to delete the oldest 100k tasks. If not all 100k tasks can be deleted due to some of them being unfinished, Meilisearch will delete as many tasks as possible. If there are no unfinished tasks, Meilisearch will not delete anything but still enqueue new tasks as usual.

The engine will stop you from adding new tasks once the hard limit of 10GiB of tasks is reached (that’s between 5M and 15M of tasks depending on your workflow). In this case, Meilisearch will try to automatically delete unfinished tasks. If this is unsuccessful, it will not enqueue new tasks, and log a warning notifying the user the engine is not working properly.

Done by @irevoire in #3693.

Language support improvements

Done by @ManyTheFish, @akeamc, @DrAliRagab, @goodhoko, and @mosuka in #3702 and in Charabia v0.7.2

Other improvements

Fixes 🐞

Misc

❤️ Thanks again to our external contributors:

download

unix · zip
curl -fL -o v1.2.0.zip https://ratatoskr.space/pkg/meilisearch/v1.2.0.zip
                    printf '%s  %s\n' '20ba30d75db41f5ce81c42128e7fb819a8ba438684b1172f09128cdaae99735f' 'v1.2.0.zip' | sha256sum -c -
windows · zip
$url = "https://ratatoskr.space/pkg/meilisearch/v1.2.0.zip"
$out = "v1.2.0.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "20ba30d75db41f5ce81c42128e7fb819a8ba438684b1172f09128cdaae99735f") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o v1.2.0.tar.gz https://ratatoskr.space/pkg/meilisearch/v1.2.0.tar.gz
                    printf '%s  %s\n' '6836580221a133b1ced0c132736c7545f3763fa21f7a4148485083ac3e0d9ced' 'v1.2.0.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "https://ratatoskr.space/pkg/meilisearch/v1.2.0.tar.gz"
$out = "v1.2.0.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "6836580221a133b1ced0c132736c7545f3763fa21f7a4148485083ac3e0d9ced") { throw "sha256 mismatch" }
download via yggdrasil mesh
unix · zip
curl -fL -o v1.2.0.zip http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v1.2.0.zip
                    printf '%s  %s\n' '20ba30d75db41f5ce81c42128e7fb819a8ba438684b1172f09128cdaae99735f' 'v1.2.0.zip' | sha256sum -c -
windows · zip
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v1.2.0.zip"
$out = "v1.2.0.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "20ba30d75db41f5ce81c42128e7fb819a8ba438684b1172f09128cdaae99735f") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o v1.2.0.tar.gz http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v1.2.0.tar.gz
                    printf '%s  %s\n' '6836580221a133b1ced0c132736c7545f3763fa21f7a4148485083ac3e0d9ced' 'v1.2.0.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v1.2.0.tar.gz"
$out = "v1.2.0.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "6836580221a133b1ced0c132736c7545f3763fa21f7a4148485083ac3e0d9ced") { throw "sha256 mismatch" }
artifact format size hashes
v1.2.0.zip zip 13.7 MiB
blake3-24 5f0aa8e0e814fd76396502dfb10e005272d844894581d2a8
sha256 20ba30d75db41f5ce81c42128e7fb819a8ba438684b1172f09128cdaae99735f
sha1 eb1d905e5f058601a1c98f1cafbb4a65f06dcc24
v1.2.0.tar.gz tar.gz 13.2 MiB
blake3-24 5416e04bbcce8e43f1501af03fb42d8c0b533a8f323a1538
sha256 6836580221a133b1ced0c132736c7545f3763fa21f7a4148485083ac3e0d9ced
sha1 154e16ce9e5d9e2cc36917e2379bc5a502b0b9b0

install

bazel
http_archive(
    name = "meilisearch",
    urls = ["https://ratatoskr.space/pkg/meilisearch/v1.2.0.tar.gz"],
    integrity = "sha256-aDZYAiGhM7HO0MEyc2x1RfN2P6IfekFISFCDrD4NnO0=",
    strip_prefix = "meilisearch-v1.2.0",
)
zig
.url = "https://ratatoskr.space/pkg/meilisearch/v1.2.0.tar.gz",
install via yggdrasil mesh
bazel
http_archive(
    name = "meilisearch",
    urls = ["http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v1.2.0.tar.gz"],
    integrity = "sha256-aDZYAiGhM7HO0MEyc2x1RfN2P6IfekFISFCDrD4NnO0=",
    strip_prefix = "meilisearch-v1.2.0",
)
zig
.url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v1.2.0.tar.gz",
← v1.3.0v1.1.1 →