Meilisearch has a number of known limitations. These are hard limits you cannot change and should take into account when designing your application.
meilisearch-importer
.
Hello World
, Hello, World
, and Hello - World
. Due to how our tokenizer works, each one of them will be processed differently and take up a different number of “positions” in our internal database.
If your query is Hello World
:
Hello
takes the position 0
of the attributeWorld
takes the position 1
of the attributeHello, World
:
Hello
takes the position 0
of the attribute,
takes the position 8
of the attributeWorld
takes the position 9
of the attribute,
takes 8 positions as it is a hard separator. You can read more about word separators in our article about data types.Hello - World
:
Hello
takes the position 0
of the attribute-
takes the position 1
of the attributeWorld
takes the position 2
of the attribute-
takes 1 position as it is a soft separator. You can read more about word separators in our article about data types.too_many_search_requests
error with a Retry-After
header set to 10 seconds. Configure this limit with --experimental-search-queue-size
.
filterableAttributes
valuesfilterableAttributes
values are limited to 468 bytes.
Explanation: Meilisearch stores filterableAttributes
values as keys in LMDB, a data type whose size is limited to 511 bytes, to which Meilisearch adds a margin of 44 bytes. Note that this only applies to individual values—for example, a genres
attribute can contain any number of values such as horror
, comedy
, or cyberpunk
as long as each one of them is smaller than 468 bytes.
filter
search parameter may have a maximum filtering depth of 2000.
Explanation: mixing and alternating AND
and OR
operators filters creates nested logic structures. Excessive nesting can lead to stack overflow.
OR
operators, there is no nesting:
OR
with AND
does not change the filter structure. The following filter’s nesting level remains 1:
AND
and OR
operators. The following example fetches documents that either belong only to user
1
, or belong to users 2
and 3
:
maxTotalHits
property of the pagination index settings. maxTotalHits
only applies to the search route and has no effect on the get documents with POST and get documents with GET endpoints.
ulimit
or a similar tool to increase resource consumption limits before running Meilisearch. For example, call ulimit -Sn 3000
in a UNIX environment to raise the number of allowed open file descriptors to 3000.
maxValuesPerFacet
limit do not impact facet search and only affect queries searching through documents.