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

meilisearch @ v1.54.0

integrity

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

release notes

💥 Breaking Changes

Meilisearch v1.54.0 makes breaking changes to the dynamicSearchRules experimental features.

  1. The POST /dynamic-search-rules endpoint now returns actions as an object with 2 fields instead of a list:

  2. pin is an array of Pin objects with the following fields:

    1. id, String, mandatory: document id of the document to pin
    2. position: positive or zero number, mandatory: position where to pin the document
    3. indexUid, optional, defaults to null, uid of the index that this action applies to. If null or missing, the action applies to any index containing a document with the provided id.
  3. scale is an array of Scale objects with the following fields:

    1. weight, positive or zero number, mandatory: scaling factor to multiply with the selected documents' innate relevancy score
    2. ids, array of strings, optional: list of document ids whose document's relevancy score should be scaled by the provided weight
    3. filter: Meilisearch filter without a foreign filter, optional: a filter on the index that is resolved to determine a list of selected documents
    4. indexUid, optional, defaults to null, uid of the index that this action applies to. If null or missing, the action applies to any index.
  4. The PATCH /dynamic-search-rules/{:ruleUid} endpoint now expects a rule with the modified actions field. See changes to POST /dynamic-search-rules for details.

  5. The uid __meilisearch_metadata is now reserved and cannot be used as a ruleUid in PATCH /dynamic-search-rules/{:ruleUid}

🌈 Enhancements

Boost, demote and hide documents with search rules

Examples

  1. Creating the search rule
// PATCH /dynamic-search-rule/batman-festival

{
  "conditions": {
    "time": {
      "start": "2026-09-21T19:00:00Z",
      "end": "2026-09-28T18:59:00Z"
    },
  },
  "actions": {
    "scale": [
      {
        "filter": "series = batman",
        "weight": 4.0
      }
    ]
  }
}
  1. Once the DSR update task has been processed and the festival begins on September 21st, make a search query:
{
  "q": "superhero returns prequel",
  "showRankingScoreDetails": true
}
  1. Observe the ranking of documents

"hits": [
        {
          "id": "batman-returns",
          "title": "Batman Returns",
          "series": "batman",
          "_rankingScore": 0.30808080808080807,
          "_rankingScoreDetails": {
            "scale": {
              "order": 0,
              "actions": [
                {
                  "ruleUid": "batman-festival",
                  "weight": 4.0
                }
              ],
              "totalWeight": 4.0
            },
            "words": {
              "order": 1,
              "matchingWords": 1,
              "maxMatchingWords": 3,
              "score": 0.3333333333333333
            },
            "typo": {
              "order": 2,
              "typoCount": 0,
              "maxTypoCount": 1,
              "score": 1.0
            },
            "proximity": {
              "order": 3,
              "score": 1.0
            },
            "attributeRank": {
              "order": 4,
              "score": 1.0
            },
            "wordPosition": {
              "order": 5,
              "score": 0.9090909090909092
            },
            "exactness": {
              "order": 6,
              "matchType": "noExactMatch",
              "matchingWords": 1,
              "maxMatchingWords": 1,
              "score": 0.3333333333333333
            }
          }
        },
        {
          "id": "superman-returns",
          "series": "superman",
          "title": "Superman Returns - The Prequels",
          "_rankingScore": 0.9628456221198156,
          "_rankingScoreDetails": {
            "words": {
              "order": 0,
              "matchingWords": 3,
              "maxMatchingWords": 3,
              "score": 1.0
            },
            "typo": {
              "order": 1,
              "typoCount": 0,
              "maxTypoCount": 3,
              "score": 1.0
            },
            "proximity": {
              "order": 2,
              "score": 0.5714285714285714
            },
            "attributeRank": {
              "order": 3,
              "score": 1.0
            },
            "wordPosition": {
              "order": 4,
              "score": 0.9032258064516128
            },
            "exactness": {
              "order": 5,
              "matchType": "noExactMatch",
              "matchingWords": 2,
              "maxMatchingWords": 3,
              "score": 0.25
            }
          }
        },
        // ...
      ],
      "processingTimeMs": "[duration]",
      "limit": 20,
      "offset": 0,
      "estimatedTotalHits": 42,
      "requestUid": "[uuid]"
    }
// PATCH /dynamic-search-rules/out-of-stock

{
  "actions": {
    "scale": [
      {
        "filter": "availability = \"out of stock\"",
        "weight": 0.5
      }
    ]
  }
}

// PATCH /dynamic-search-rules/discontinued

{
  "actions": {
    "scale": [
      {
        "filter": "availability = discontinued",
        "weight": 0.0
      }
    ]
  }
}

By @dureuill in https://github.com/meilisearch/meilisearch/pull/6549

MCP endpoint

We introduce a new MCP protocol on the /mcp path. It implements the HTTP+SSE Transport version of the protocol. You can register the Meilisearch MCP in your favorite LLM, e.g., Claude Code, Codex. Note that the MCP route is using bearer authentication and doesn't support OAuth authentication.

Enable the mcpRoute experimental feature to use the feature.

by @Kerollmops in https://github.com/meilisearch/meilisearch/pull/6629

Improve search performance details in multi-search

The performance details in a federated search now separate the timing per query

"performanceDetails": {
  "wait in queue": "1.36ms",
  "preprocess filters > prepare": "985.00µs",
  "preprocess filters > send to remote": "220.00µs",
  "preprocess filters > execute local > evaluate filter": "139.00µs",
  "preprocess filters > execute local": "1.61ms",
  "preprocess filters > wait for remote": "35.97ms",
  "preprocess filters": "39.01ms",
  "process > prepare": "96.00µs",
  "process > send to remote": "118.00µs",
  "process > execute local > load field ids map": "63.00µs",
  "process > execute local > query[0] > evaluate filter": "84.00µs",
  "process > execute local > query[0] > tokenize query": "163.00µs",
  "process > execute local > query[0] > evaluate query": "116.00µs",
  "process > execute local > query[0] > keyword ranking": "634.00µs",
  "process > execute local > query[0]": "1.52ms",
  "process > execute local > pin hits": "29.00µs",
  "process > execute local > format": "36.00µs",
  "process > execute local": "2.90ms",
  "process > wait for remote": "37.24ms",
  "process > merge": "82.00µs",
  "process": "40.45ms",
  "hydrate > send to remote": "38.00µs",
  "hydrate > execute local": "35.00µs",
  "hydrate > wait for remote": "41.00µs",
  "hydrate": "295.00µs",
  "merge facets": "51.00µs"
}

By @ManyTheFish in https://github.com/meilisearch/meilisearch/pull/6631

🔩 Miscellaneous

New Contributors

Full Changelog: https://github.com/meilisearch/meilisearch/compare/v1.53.2...v1.54.0

download

unix · zip
curl -fL -o v1.54.0.zip https://ratatoskr.space/pkg/meilisearch/v1.54.0.zip
                    printf '%s  %s\n' '8faa971e931019f8f392fbed5f135ca7986541730b4b41965d03f70a20cc590e' 'v1.54.0.zip' | sha256sum -c -
windows · zip
$url = "https://ratatoskr.space/pkg/meilisearch/v1.54.0.zip"
$out = "v1.54.0.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "8faa971e931019f8f392fbed5f135ca7986541730b4b41965d03f70a20cc590e") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o v1.54.0.tar.gz https://ratatoskr.space/pkg/meilisearch/v1.54.0.tar.gz
                    printf '%s  %s\n' 'e1fa1b85996b8760fe4a5844086b3745f4d03ea0d7bfe6663427a2059696bd7b' 'v1.54.0.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "https://ratatoskr.space/pkg/meilisearch/v1.54.0.tar.gz"
$out = "v1.54.0.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "e1fa1b85996b8760fe4a5844086b3745f4d03ea0d7bfe6663427a2059696bd7b") { throw "sha256 mismatch" }
download via yggdrasil mesh
unix · zip
curl -fL -o v1.54.0.zip http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v1.54.0.zip
                    printf '%s  %s\n' '8faa971e931019f8f392fbed5f135ca7986541730b4b41965d03f70a20cc590e' 'v1.54.0.zip' | sha256sum -c -
windows · zip
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v1.54.0.zip"
$out = "v1.54.0.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "8faa971e931019f8f392fbed5f135ca7986541730b4b41965d03f70a20cc590e") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o v1.54.0.tar.gz http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v1.54.0.tar.gz
                    printf '%s  %s\n' 'e1fa1b85996b8760fe4a5844086b3745f4d03ea0d7bfe6663427a2059696bd7b' 'v1.54.0.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v1.54.0.tar.gz"
$out = "v1.54.0.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "e1fa1b85996b8760fe4a5844086b3745f4d03ea0d7bfe6663427a2059696bd7b") { throw "sha256 mismatch" }
artifact format size hashes
v1.54.0.zip zip 20.4 MiB
blake3-24 b1c8156ada4ff74d2dbd1a998bee647fe35b6dd20718f84c
sha256 8faa971e931019f8f392fbed5f135ca7986541730b4b41965d03f70a20cc590e
sha1 5978db25ae23d82386b93e5fb0b6efcfef26d634
v1.54.0.tar.gz tar.gz 19.4 MiB
blake3-24 9329ebb67b4c566cd8f31dcfeaf6d5d17753c67327b04de2
sha256 e1fa1b85996b8760fe4a5844086b3745f4d03ea0d7bfe6663427a2059696bd7b
sha1 fa670b14221fd6f94ab5001a21cc0370eb280a93

install

bazel
http_archive(
    name = "meilisearch",
    urls = ["https://ratatoskr.space/pkg/meilisearch/v1.54.0.tar.gz"],
    integrity = "sha256-4fobhZlrh2D+SlhECGs3RfTQPqDXv+ZmNCeiBZaWvXs=",
    strip_prefix = "meilisearch-v1.54.0",
)
zig
.url = "https://ratatoskr.space/pkg/meilisearch/v1.54.0.tar.gz",
install via yggdrasil mesh
bazel
http_archive(
    name = "meilisearch",
    urls = ["http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v1.54.0.tar.gz"],
    integrity = "sha256-4fobhZlrh2D+SlhECGs3RfTQPqDXv+ZmNCeiBZaWvXs=",
    strip_prefix = "meilisearch-v1.54.0",
)
zig
.url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meilisearch/v1.54.0.tar.gz",
v1.53.2 →