Known limitations
Currently, MeiliSearch has a number of known limitations. Some of these limitations are the result of intentional design trade-offs, while others can be attributed to LMDB, the key-value store that MeiliSearch uses under the hood.
Design limitations
Number of query words
Limitation: The maximum number of terms taken into account for each search query is 10. If a search query includes more than 10 words, all words after the 10th will be ignored.
Explanation: Queries with many search terms can lead to long response times. This goes against our goal of providing a fast search-as-you-type experience.
Database size
Limitation: The default maximum database size is 100GiB. This size can be modified using the options --max-index-size
& --max-udb-size
as described in the configuration reference.
Explanation: MeiliSearch uses two databases: one for storage and one for updates. On launch, LMDB needs to know the maximum size that it will need to reserve on disk for both of them.
Maximum words per attribute
Limitation: MeiliSearch can index a maximum of 1000 words per attribute. If an attribute contains more than 1000 words, only the first 1000 words will be indexed and the rest will be silently ignored.
Explanation: This limit is enforced for relevancy reasons. The more words there are in a given attribute, the less relevant the search queries will be.
Maximum attributes per document
Limitation: MeiliSearch can index a maximum of 65,536 attributes per document. If a document contains more than 65,536 attributes, an error will be thrown.
Explanation: This limit is enforced for performance and storage reasons. Overly large internal data structures—resulting from documents with too many fields—lead to overly large databases on disk, and slower search performance.
Maximum number of documents in an index
Limitation: An index can contain no more than 4,294,967,296 documents.
Explanation: This is the largest possible value for a 32-bit unsigned integer. Since MeiliSearch’s engine uses unsigned integers to identify documents internally, this is the maximum number of documents that can be stored in an index.
Length of individual filterableAttributes
values
Limitation: Individual filterableAttributes
values are limited to 500 bytes.
Explanation: MeiliSearch stores filterableAttributes
values as keys in LMDB, a datatype whose size is limited to approximately 500 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 500 bytes.
Other limitations
Payload size
Limitation: The default limit for the payload size is ~100MB.
Explanation: MeiliSearch memory consumption can be an issue in some systems and keeping payload sizes relatively small ensures an optimal experience for most users. This limit can be modified if you want to take full advantage of particularly powerful hardware.