# MeiliSearch ⚡ Lightning Fast, Ultra Relevant, and Typo-Tolerant Search Engine 🔍 [Github](https://github.com/meilisearch/meilisearch) | [Website](https://www.meilisearch.com) ## Get Started 1. [Install MeiliSearch](#install-meilisearch) 2. [Version](#version) 3. [Indexes](#indexes) - [Get Indexes](#get-indexes) - [Create Index](#create-index) - [Delete Index](#delete-index) 4. [Tasks](#tasks) - [Get Tasks](#get-tasks) - [Get Index Tasks](#get-index-tasks) 5. [Documents](#documents) - [Get Documents](#get-documents) - [Add Documents](#add-documents) 6. [Search](#search) 7. [Settings](#settings) - [Get Settings](#get-settings) - [Update Displayed Settings](#update-displayed-settings) - [Update Searchable Settings](#update-searchable-settings) - [Update Filterable Settings](#update-filterable-settings) - [Update Sortable Settings](#update-sortable-settings) - [Update Ranking Rules Settings](#update-ranking-rules-settings) ## Install MeiliSearch - Login as Super User ```bash sudo su ``` - Install MeiliSearch (Ubuntu) ```bash curl -L https://install.meilisearch.com | sh ``` - Move the MeiliSearch binary to your system binaries ```bash mv ./meilisearch /usr/bin/ ``` - Create a service file - Specify **Host**, e.g. `--http-addr 127.0.0.1:7700` - Specify **Environment**, e.g. `--env production` - Specify **Master Key**, e.g. `--master-key MasterKey` - Specify **Database Path**, e.g. `--db-path /root/data.ms` ```bash cat << EOF > /etc/systemd/system/meilisearch.service [Unit] Description=MeiliSearch After=systemd-user-sessions.service [Service] Type=simple ExecStart=/usr/bin/meilisearch --http-addr 127.0.0.1:7700 --env production --master-key MasterKey --db-path /root/data.ms [Install] WantedBy=default.target EOF ``` - Enable and start service ```bash systemctl enable meilisearch systemctl start meilisearch systemctl status meilisearch ``` ## Version ```curlrc curl \ -X GET 'http://127.0.0.1:7700/version' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer MasterKey' | python3 -mjson.tool ``` ## Indexes ### Get Indexes ```curlrc curl \ -X GET 'http://127.0.0.1:7700/indexes' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer MasterKey' | python3 -mjson.tool ``` ### Create Index ```curlrc curl \ -X POST 'http://127.0.0.1:7700/indexes' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer MasterKey' \ --data-binary '{ "uid": "users", "primaryKey": "id" }' | python3 -mjson.tool ``` ### Delete Index ```curlrc curl \ -X DELETE 'http://127.0.0.1:7700/indexes/users' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer MasterKey' | python3 -mjson.tool ``` ## Tasks ### Get Tasks ```curlrc curl \ -X GET 'http://127.0.0.1:7700/tasks' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer MasterKey' | python3 -mjson.tool ``` ### Get Index Tasks ```curlrc curl \ -X GET 'http://127.0.0.1:7700/indexes/users/tasks' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer MasterKey' | python3 -mjson.tool ``` ## Documents ### Get Documents ```curlrc curl \ -X GET 'http://127.0.0.1:7700/indexes/users/documents' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer MasterKey' | python3 -mjson.tool ``` ### Add Documents ```curlrc curl \ -X POST 'http://127.0.0.1:7700/indexes/users/documents' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer MasterKey' \ --data-binary '[ { "id": 1, "name": "Eliyas Hossain", "email" "eliyas.devxhub@gmail.com" } ]' | python3 -mjson.tool ``` ## Search ```curlrc curl \ -X POST 'http://127.0.0.1:7700/indexes/users/search' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer MasterKey' \ --data-binary '{ "q": "eliyas" }' | python3 -mjson.tool ``` ## Settings ### Get Settings ```curlrc curl \ -X GET 'http://127.0.0.1:7700/indexes/users/settings' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer MasterKey' | python3 -mjson.tool ``` ### Update Displayed Settings ```curlrc curl \ -X POST 'http://127.0.0.1:7700/indexes/users/settings/displayed-attributes' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer MasterKey' \ --data-binary '[ "id", "name", "email", "avatar" ]' | python3 -mjson.tool ``` ### Update Searchable Settings ```curlrc curl \ -X POST 'http://127.0.0.1:7700/indexes/users/settings/searchable-attributes' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer MasterKey' \ --data-binary '[ "name", "email" ]' | python3 -mjson.tool ``` ### Update Filterable Settings ```curlrc curl \ -X POST 'http://127.0.0.1:7700/indexes/users/settings/filterable-attributes' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer MasterKey' \ --data-binary '[ "id", "email" ]' | python3 -mjson.tool ``` ### Update Sortable Settings ```curlrc curl \ -X POST 'http://127.0.0.1:7700/indexes/users/settings/sortable-attributes' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer MasterKey' \ --data-binary '[ "id", "name" ]' | python3 -mjson.tool ``` ### Update Ranking Rules Settings ```curlrc curl \ -X POST 'http://127.0.0.1:7700/indexes/users/settings/ranking-rules' \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer MasterKey' \ --data-binary '[ "words", "sort", "typo", "proximity", "attribute", "exactness" ]' | python3 -mjson.tool ```