Cómo implementar y configurar Meilisearch en Ubuntu 22.04

Introducción
Meilisearch es un motor de búsqueda independiente de código abierto escrito en el lenguaje de programación Rust . En comparación con otros motores de búsqueda populares, las implementaciones de Meilisearch requieren muy pocos pasos y puedes ejecutar un servidor Meilisearch y consultarlo usando un solo binario de línea de comandos. Meilisearch tiene funciones como coincidencias aproximadas e indexación sin esquema e incluye una interfaz web para fines de demostración. Las implementaciones más complejas admiten la integración con la biblioteca de JavaScript InstantSearch.
En este tutorial, primero ejecutará Meilisearch en un servidor Ubuntu 22.04 usando Docker para experimentar con él. Lo llenará con datos de muestra y los consultará tanto desde la línea de comandos como desde la interfaz web incorporada. También explorará cómo cambiar la ponderación de búsqueda y otros detalles de configuración. Luego, lo usará docker compose
para configurar un servicio Meilisearch listo para producción que almacene datos persistentes y se reinicie automáticamente con su servidor.
Prerrequisitos
Para seguir este tutorial, necesitarás:
-
Un servidor Ubuntu 22.04 configurado siguiendo la guía de configuración inicial del servidor Ubuntu 22.04 , incluido un usuario sudo no root y un firewall.
-
Docker y Docker-compose instalados siguiendo Cómo instalar y usar Docker en Ubuntu 22.04 y el primer paso de Cómo instalar y usar Docker-Compose en Ubuntu 22.04
Paso 1: Instalación de Meilisearch y carga de datos de muestra
Meilisearch ofrece paquetes de instalación para muchos entornos. Debido a que se encuentra en desarrollo activo y su estructura de datos interna aún se está actualizando, es una buena idea instalar Meilisearch a través de Docker. De esta manera, puede fijar una configuración específica de Meilisearch para su sistema y actualizarla sin problemas según sea necesario.
Comience extrayendo la última imagen de Meilisearch (0.26.1 al momento de escribir este artículo) desde Docker Hub:
- docker pull getmeili/meilisearch:v0.26.1
Ahora puedes iniciar la imagen del contenedor Meilisearch proporcionando algunos parámetros a docker run
:
- docker run --rm -p 127.0.0.1:7700:7700 getmeili/meilisearch:v0.26.1
Este comando se puede desglosar de la siguiente manera:
docker run –rm
utiliza la--rm
bandera para garantizar que el contenedor limpiará después de sí mismo cuando salga.-p 127.0.0.1:7700:7700
reenvía el tráfico en la interfaz localhost de su servidor en el puerto 7700 al puerto predeterminado de Meilisearch7700
dentro del contenedor Docker, para que pueda acceder a él de manera normal.127.0.0.1
es sinónimo delocalhost
cuando se usan direcciones IPv4.getmeili/meilisearch:v0.26.1
ejecuta la imagen que acabas de descargar.
Cuando ejecute Meilisearch, se generarán automáticamente algunos detalles de configuración y se incluirán en la salida. Tenga en cuenta que el directorio de índice de Meilisearch ./data.ms
se generó automáticamente dentro del contenedor. Cambiará la ubicación más adelante en este tutorial. Tenga en cuenta también que Meilisearch se ejecuta de forma predeterminada en un entorno development
en lugar de en un production
entorno de configuración.
…[secondary_label Output]Database path: "./data.ms"Server listening on: "http://0.0.0.0:7700"Environment: "development"Commit SHA: "unknown"Commit date: "unknown"Package version: "0.26.1"…
Ahora tienes una instancia de Meilisearch en ejecución sin datos. Necesitarás cargar algunos datos de muestra para comenzar a trabajar con Meilisearch. El meilisearch
proceso bloqueará el shell en el que se inició mientras esté en ejecución, por lo que también deberás abrir una conexión independiente a tu servidor para continuar ejecutando otros comandos.
El proyecto Meilisearch ofrece un conjunto de datos de muestra con formato JSON extraídos de TMDB, la base de datos de películas. Descargue los datos con docs.meilisearch.com
el wget
comando:
- wget https://docs.meilisearch.com/movies.json
Puedes ejecutar tail
para ver un fragmento del contenido de este archivo:
Output…{"id":"289239","title":"Mostly Ghostly: Have You Met My Ghoulfriend?","poster":"https://image.tmdb.org/t/p/w500/eiVY4kKpbo1f7wyNubgJX5ILpxg.jpg","overview":"Bella Thorne, Madison Pettis and Ryan Ochoa lead an ensemble cast in this spook-tacular adventure with new ghosts, new thrills, and the return of some old friends. Max (Ochoa) only has eyes for Cammy (Thorne), the smart, popular redhead at school. When Max finally scores a date with Cammy on Halloween, Phears, an evil ghost with plans on taking over the world, unleashes his ghouls and things go haywire. With the help of his ghostly pals, Tara and Nicky, can Max thwart Phears' evil plot, help reunite his ghost friends with their long-lost parents and still make his date with Cammy on Halloween? R.L. Stine's Mostly Ghostly: Have You Met My Ghoulfriend? is a frightful family delight!","release_date":1409619600,"genres":["Family","Fantasy","Horror"]},{"id":"423189","title":"Right Here Right Now","poster":"https://image.tmdb.org/t/p/w500/sCo1excKlzhKas681CTSe1ujcOa.jpg","overview":"Hamburg, St. Pauli, New Year's Eve. Oskar Wrobel runs a music club in an old hospital at the edge of the Reeperbahn. While fireworks go off in the streets of St. Pauli, he prepares the big final party - the club has to close. Thankfully there is no time to think about it because the chaos is breaking into his living room, all while hell break loose at the club. The film, based on the novel by Tino Hanekamp, was filmed with hundreds of extras attending a real-life three-night-long party.","release_date":1530579600,"genres":["Documentary","Music"]},{"id":"550315","title":"Fireman Sam - Set for Action!","poster":"https://image.tmdb.org/t/p/w500/2atmRsuSA4tX6sbOEgFzquFWcCV.jpg","overview":"","release_date":1538010000,"genres":["Family","Animation"]}]
Cada entrada contiene una identificación , un título , un enlace a una imagen de póster , opcionalmente una descripción general de la película, una fecha de lanzamiento en formato de marca de tiempo y una lista de géneros .
Puede cargar los datos en Meilisearch utilizando curl
para construir una solicitud HTTP POST . curl es una herramienta poderosa y omnipresente para crear solicitudes web en la línea de comandos, y HTTP POST es uno de los pocos verbos HTTP comunes (junto con PUT y GET, utilizados por los navegadores web), utilizado para enviar datos formateados a los puntos finales de la API.
- curl
- -X POST 'http://localhost:7700/indexes/movies/documents'
- -H 'Content-Type: application/json'
- --data-binary @movies.json
Los distintos argumentos del curl
comando son:
-X POST http://url
especifica que realizará una solicitud POST y enviará datos.-H 'Content-Type: application/json'
proporciona un encabezado h , que especifica el tipo de archivo.--data-binary @movies.json
incluye el archivo en sí.- Los
caracteres al final de cada línea son estándar para cuando desea dividir un comando de shell en varias líneas sin dividir el comando en sí.
Meilisearch se ejecuta en el puerto 7700
de forma predeterminada y 127.0.0.1
refleja una IP de host local. En este caso, estás creando un nuevo índice de Meilisearch en /indexes/movies/documents
y proporcionando el formato necesario en tu solicitud para cargar un archivo JSON. Esta es una forma estándar de cargar JSON con CURL.
El comando debería devolver un resultado que indique que su solicitud se realizó correctamente enqueued
. Meilisearch procesa todas las solicitudes de forma asincrónica en lugar de esperar a que se completen.
Output{"uid":0,"indexUid":"movies","status":"enqueued","type":"documentAddition","enqueuedAt":"2022-03-09T17:23:18.233702815Z"}
Puede comprobar el estado de esta solicitud realizando una curl -X GET
solicitud al nuevo /tasks/
punto final creado en el mismo índice. Estos datos deben procesarse muy rápidamente, por lo que la respuesta debe incluir el finishedAt
parámetro:
- curl -X GET 'http://localhost:7700/indexes/movies/tasks/0'
Output{"uid":0,"indexUid":"movies","status":"succeeded","type":"documentAddition","details":{"receivedDocuments":19547,"indexedDocuments":19546},"duration":"PT29.866920116S","enqueuedAt":"2022-03-09T17:23:18.233702815Z","startedAt":"2022-03-09T17:23:18.241475424Z","finishedAt":"2022-03-09T17:23:48.108395540Z"}
Ahora tienes un índice de Meilisearch con datos de muestra. En el siguiente paso, probarás algunas consultas de ejemplo para explorar los datos.
Paso 2 – Búsqueda con Meilisearch
Para buscar en un índice de Meilisearch, puede enviar consultas individuales a través de la API o buscar con una interfaz web.
La búsqueda a través de la API funciona de manera similar a la carga de datos a través de HTTP POST. Para realizar una búsqueda, debe realizar una solicitud al /search
punto final y puede incluir todo el JSON de la consulta en la línea de comandos. Intente realizar una búsqueda para saint
ver qué películas se devuelven con el siguiente curl
comando:
- curl
- -X POST 'http://localhost:7700/indexes/movies/search'
- -H 'Content-Type: application/json'
- --data-binary '{ "q": "saint" }'
Devolverá un objeto JSON que contiene una lista de resultados:
Output{ "hits": [ { "id": "45756", "title": "Saint", "poster": "https://image.tmdb.org/t/p/w500/pEPd4mgMwvz6aRhuWkmPUv98P1O.jpg", "overview": "A horror film that depicts St. Nicholas as a murderous bishop who kidnaps and murders children when there is a full moon on December 5.", "release_date": 1288486800, "genres": [] }, { "id": "121576", "title": "Saint Philip Neri I Prefer Heaven", "poster": "https://image.tmdb.org/t/p/w500/z9OsQoM343WsIrP0zMEE06pO1vH.jpg", "overview": "An epic feature film on the famous 'Apostle of Rome' and great friend of youth in the 16th century. One of the most popular saints of all time, St. Philip Neri was widely known for his great charity, deep prayer life, and tremendous humor. Hoping to join St. Ignatius of Loyola's new order of Jesuits and be a missionary to India, Philip was instead guided by Providence to seek out the poor and abandoned youth of Rome to catechize them in the faith and help them find a better life. He became the founder of the religious congregation, the Oratory, that worked with the youth and also labored to re-evangelize a decadent Rome.", "release_date": 1284944400, "genres": [ "Drama" ] }, { "id": "221667", "title": "Saint Laurent", "poster": "https://image.tmdb.org/t/p/w500/ekpT7mTk4t5PjRYZfiyh0sTKpY5.jpg", "overview": "1967-1976. As one of history's greatest fashion designers entered a decade of freedom, neither came out of it in one piece.", "release_date": 1411434000, "genres": [ "Drama" ] },...
Nota: Para lograr un formato JSON más legible en la línea de comandos, puede instalar otra herramienta denominada jq
using sudo apt install jq
. Luego, use las tuberías de shell para pasar la salida JSON de Meilisearch a través de jq
, agregando | jq
al comando.
Por ejemplo, para enumerar solo los títulos para la saint
consulta de ejemplo, instale jq
y ejecute el siguiente comando:
- curl
- -X POST 'http://localhost:7700/indexes/movies/search'
- -H 'Content-Type: application/json'
- --data-binary '{ "q": "saint" }' | jq -r '.hits [] .title'
Recibirás una lista de títulos como ésta:
[secondary_label OutputSaintSaint Philip Neri I Prefer HeavenSaint Laurent. . .
Para demostrar la funcionalidad de coincidencia aproximada de Meilisearch, también puede intentar buscar seint
, suponiendo que un usuario haya cometido un error tipográfico:
- curl
- -X POST 'http://localhost:7700/indexes/movies/search'
- -H 'Content-Type: application/json'
- --data-binary '{ "q": "seint" }'
Los resultados serán ligeramente diferentes debido a los detalles de la clasificación de la consulta, pero aún verá muchas entradas que contienen “santo”.
Output{ "hits": [ { "id": "10105", "title": "Saints and Soldiers", "poster": "https://image.tmdb.org/t/p/w500/efhqxap8fLi4v1GEXVvakey0z3S.jpg", "overview": "Five American soldiers fighting in Europe during World War II struggle to return to Allied territory after being separated from U.S. forces during the historic Malmedy Massacre.", "release_date": 1063242000, "genres": [ "War", "Action", "Drama" ] }, { "id": "121576", "title": "Saint Philip Neri I Prefer Heaven", "poster": "https://image.tmdb.org/t/p/w500/z9OsQoM343WsIrP0zMEE06pO1vH.jpg", "overview": "An epic feature film on the famous 'Apostle of Rome' and great friend of youth in the 16th century. One of the most popular saints of all time, St. Philip Neri was widely known for his great charity, deep prayer life, and tremendous humor. Hoping to join St. Ignatius of Loyola's new order of Jesuits and be a missionary to India, Philip was instead guided by Providence to seek out the poor and abandoned youth of Rome to catechize them in the faith and help them find a better life. He became the founder of the religious congregation, the Oratory, that worked with the youth and also labored to re-evangelize a decadent Rome.", "release_date": 1284944400, "genres": [ "Drama" ] }, { "id": "133558", "title": "Saints and Soldiers: Airborne Creed", "poster": "https://image.tmdb.org/t/p/w500/gwqR9UY0xqBZwP2qb8ZPmf9b2lq.jpg", "overview": "A group of American GIs work their way through war-torn France during the final days of the Second World War.", "release_date": 1345165200, "genres": [ "Drama" ] },…
Ahora que ha experimentado con la búsqueda en la línea de comandos, si está ejecutando Meilisearch en una máquina local, puede navegar hasta ella http://localhost:7700/
en un navegador para ver la interfaz de usuario web. Si está ejecutando Meilisearch en un servidor remoto y siguió los requisitos previos de este tutorial, la configuración de su firewall evitará que se pueda acceder a esta URL. Deberá crear un túnel SSH para acceder a la interfaz de búsqueda. Para crear un túnel desde su máquina local hasta su servidor, ejecute ssh
con el -L
indicador. Proporcione el número de puerto 7700
junto con la dirección IP de su servidor remoto:
- ssh -L 7700:127.0.0.1:7700 sammy@your_server_ip
Luego deberías poder acceder al panel de control en un navegador en http://localhost:7700
.
La búsqueda en la interfaz de demostración de Meilisearch es extremadamente rápida y debería ofrecer una vista previa interesante del uso en producción. En el siguiente paso, encontrará ejemplos para ajustar la clasificación y el filtrado de búsquedas para favorecer ciertos parámetros en detrimento de otros.
Paso 3: Ajuste de la clasificación y el filtrado de búsqueda
Una característica importante de los motores de búsqueda es que todos ellos implementan algún método para ponderar la importancia de los distintos campos. Otro término para esta ponderación es sesgo . Por ejemplo, supongamos que su índice de búsqueda contiene varios campos y realiza una búsqueda con una consulta de una sola palabra. El motor de búsqueda necesita instrucciones sobre cómo clasificar o sesgar sus resultados en función de la importancia de un campo.
Algunos motores de búsqueda de código abierto no permiten configurar el sesgo, y los resultados de las consultas pueden ser demasiado amplios o estar sesgados por las tendencias de los datos más que por la relevancia de los términos de búsqueda. Meilisearch tiene un conjunto predeterminado de reglas de sesgo que se pueden configurar. Esta capacidad de personalización puede ayudar a producir resultados más intuitivos y relevantes en función de los detalles de los datos.
Para comprobar sus reglas de clasificación, puede realizar una solicitud HTTP GET utilizando curl
el /settings/ranking-rules
punto final:
- curl -X GET 'http://localhost:7700/indexes/movies/settings/ranking-rules'
Output["words","typo","proximity","attribute","sort","exactness"]
Estas reglas se explican con mayor detalle en la documentación de Meilisearch . Básicamente, permiten ajustar las formas en que Meilisearch prioriza la resolución de errores tipográficos comunes, en lugar de priorizar la proximidad de las palabras en las frases.
Puede enviar una solicitud HTTP POST curl
a ese punto final con el mismo conjunto de reglas reorganizadas para cambiar su orden de prioridad. Si su conjunto de datos incluye campos cuantitativos, también puede agregar reglas de clasificación que sesgarán esos campos en orden ascendente o descendente. En este conjunto de datos, release_date
hay uno de esos campos, que podría incluir de la siguiente manera:
- curl
- -X POST 'http://localhost:7700/indexes/movies/settings/ranking-rules'
- -H 'Content-Type: application/json'
- --data-binary '[
- "words",
- "typo",
- "proximity",
- "release_date:asc",
- "attribute",
- "sort",
- "exactness",
- "rank:desc"
- ]'
Esta solicitud devolverá una enqueued
respuesta, similar al primer HTTP POST que utilizó para cargar el movies.json
archivo:
Output{"uid":1,"indexUid":"meteorites","status":"enqueued","type":"settingsUpdate","enqueuedAt":"2022-03-10T21:36:47.592902987Z"}
Meilisearch le permite consultar y actualizar reglas que describen qué atributos se pueden buscar, qué atributos se muestran en los resultados y qué atributos se pueden filtrar u ordenar, utilizando el mismo enfoque HTTP GET y HTTP POST.
Por ejemplo, si desea que solo ciertos atributos se puedan buscar en primer lugar y que otros (como id
, que probablemente no tenga valor para un usuario final) se excluyan de los resultados, puede PUBLICAR una lista JSON de searchableAttributes
en el settings
punto final:
- curl
- -X POST 'http://localhost:7700/indexes/movies/settings'
- -H 'Content-Type: application/json'
- --data-binary '{
- "searchableAttributes": [
- "title",
- "overview",
- "genres"
- ]
- }'
Ahora solo se pueden buscar los campos title
, overview
, y genres
, y el resto se excluye del proceso de indexación.
También puedes cambiar qué atributos se muestran u ocultan en los resultados de búsqueda publicando una lista de displayedAttributes
:
- curl
- -X POST 'http://localhost:7700/indexes/movies/settings'
- -H 'Content-Type: application/json'
- --data-binary '{
- "displayedAttributes": [
- "title",
- "overview",
- "genres",
- "release_date"
- ]
- }'
Ahora todos los campos de una película están ocultos, excepto aquellos que incluiste en la lista de displayedAttributes
.
Por último, también puede proporcionar una lista de los atributos de sus datos que se filtrarán u ordenarán. Esta lista incluye tanto el filtrado cuantitativo mediante el uso de operadores comparativos (como para mayor que o
para menor que) como el filtrado mediante la inclusión en un conjunto específico, también conocido como búsqueda por facetas.
- curl
- -X POST 'http://localhost:7700/indexes/movies/settings'
- -H 'Content-Type: application/json'
- --data-binary '{
- "filterableAttributes": [
- "genres",
- "release_date"
- ],
- "sortableAttributes": [
- "release_date"
- ]
- }'
En conjunto, estas reglas le permiten crear consultas como las siguientes:
- curl
- -X POST 'http://localhost:7700/indexes/movies/search'
- -H 'Content-Type: application/json'
- --data-binary '{ "q": "house", "sort": ["release_date:desc"], "filter": "genres = Horror" }'
Esta consulta es el equivalente a la frase escrita: “busca todas las películas del género Terror, desde la más reciente hasta la más antigua, que también contengan la palabra ‘casa’ en el título”. Recibirás un resultado como el siguiente:
Output{ "hits": [ { "id": "82505", "title": "House at the End of the Street", "poster": "https://image.tmdb.org/t/p/w500/t9E3Inaar1CAn5Cwj0M8dTwtD8H.jpg", "overview": "A mother and daughter move to a new town and find themselves living next door to a house where a young girl murdered her parents. When the daughter befriends the surviving son, she learns the story is far from over.", "release_date": 1348189200, "genres": [ "Horror", "Thriller" ] }, { "id": "29293", "title": "House of the Dead 2", "poster": "https://image.tmdb.org/t/p/w500/r95UYIFeCjIVKZ1MPxZwEHITAhg.jpg", "overview": "In Guesta Verde University, the deranged Professor Curien is trying to bring back the dead, killing students for the experiment. There is an outbreak of zombies in the campus, and the government sends a NSA medical research team, formed by Dr. Alexandra Morgan a.k.a. Nightingale and lieutenant Ellis, with a special force leaded by lieutenant Dalton, trying to get the zero sample from the first generation zombie. The team has a very short time to accomplish their mission and leave the place before missiles are sent to destroy the area. However, the place is crowded of hyper sapiens and the group has to fight to survive.", "release_date": 1139616000, "genres": [ "TV Movie", "Horror" ] }, { "id": "10066", "title": "House of Wax", "poster": "https://image.tmdb.org/t/p/w500/r0v8qg78Ol9NIsRGe3DME27ORpd.jpg", "overview": "A group of unwitting teens are stranded near a strange wax museum and soon must fight to survive and keep from becoming the next exhibit.", "release_date": 1114822800, "genres": [ "Horror", "Drama" ] },…
La inclusión y exclusión de campos en la indexación, búsqueda y visualización de documentos son funciones fundamentales de los motores de búsqueda basados en documentos. Si se habilitan de forma condicional, se puede mantener el rendimiento de la búsqueda y personalizar de forma rápida y exhaustiva el motor de búsqueda para que se adapte a los usuarios finales.
Ahora que ha explorado cómo ejecutar, consultar y configurar Meilisearch, en el siguiente paso de este tutorial, creará una docker-compose
configuración para Meilisearch que le permitirá ejecutarse en segundo plano con una clave de autenticación segura.
Paso 4: creación de una configuración de Docker-Compose y uso de autenticación basada en claves
Al igual que cualquier otra aplicación del lado del servidor, los usuarios finales de un índice de Meilisearch deben asumir que estará en funcionamiento y disponible en todo momento. Para garantizar que Meilisearch pueda reiniciarse regularmente con su servidor y que se puedan rastrear sus registros, debe crear una docker-compose
configuración que permita que se administre automáticamente.
Primero, cree un directorio /var/local
que Meilisearch pueda usar para almacenar permanentemente su índice de búsqueda y otros detalles de configuración:
- sudo mkdir /var/local/meilisearch
Después de eso, crea un directorio en tu entorno de trabajo existente llamado meilisearch-docker
, que se usará para almacenar una configuración de Docker para Meilisearch, y luego cd
en ese directorio:
- mkdir ~/meilisearch-docker
- cd ~/meilisearch-docker
A continuación, utilizando nano
su editor de texto favorito, abra un archivo llamado docker-compose.yml
:
- nano docker-compose.yml
Copia el siguiente contenido en el archivo. Esta será tu configuración Docker de Meilisearch.
docker-compose.yml
version: "3.9"services: meilisearch: image: "getmeili/meilisearch:v0.26.1" restart: unless-stopped ports: - "127.0.0.1:7700:7700" volumes: - /var/local/meilisearch:/data.ms env_file: - ./meilisearch.env
Guarde y cierre el archivo. Si está utilizando nano
, presione Ctrl+X
, luego cuando se le solicite Y
y luego ENTER
.
Las configuraciones utilizadas en este archivo son similares a la docker
sintaxis original que ejecutó anteriormente en este tutorial, con algunas adiciones:
restart:unless-stopped
significa que este servicio continuará ejecutándose en segundo plano y persistirá durante los reinicios a menos que lo detenga manualmente.- Su índice de Meilisearch ahora es persistente y se almacena en
/var/local/meilisearch
su máquina local. env_file
declara un archivo de entorno,./meilisearch.env
, para configurar las opciones de Meilisearch.
Las variables de entorno le permiten ejecutar meilisearch
con opciones adicionales para declarar eficazmente su configuración en tiempo de ejecución. El uso de variables de entorno es una forma coherente y de todo el sistema de configurar los parámetros de la aplicación sin necesidad de editar un archivo de configuración específico de la aplicación. docker-compose
le permite declarar variables de entorno en un archivo independiente para evitar tener que incluir información secreta en la configuración principal docker-compse.yml
.
Para ejecutar Meilisearch en modo de producción, deberá configurar una clave API para un uso seguro. Puede crear su propia clave o generar una con el siguiente openssl
comando:
- openssl rand -hex 30
Output173e95f077590ed33dad89247247be8d8ce8b6722ccc87829aaefe3207be
Anote esta clave en un lugar seguro. Por último, utilizando nano
nuevamente su editor de texto favorito, abra el nuevo archivo llamado meilisearch.env
:
- nano meilisearch.env
Pegue su clave en el archivo como MEILI_MASTER_KEY
variable de entorno:
meilisearch.env
MEILI_MASTER_KEY="173e95f077590ed33dad89247247be8d8ce8b6722ccc87829aaefe3207be"
Guarde y cierre el archivo. Si todavía tiene una instancia de Meilisearch ejecutándose en otro shell, ahora debe cerrarla navegando de nuevo a esa ventana de terminal y presionando Ctrl+C
. Ahora, puede abrir la nueva instancia de Docker de Meilisearch, usando docker-compose up
with --detach
para ejecutarla en segundo plano:
- docker compose up --detach
Puedes verificar que se inició correctamente utilizando docker ps
:
- docker compose ps
Output Name Command State Ports------------------------------------------------------------------------------------------------------------meilisearch-docker_meilisearch_1 tini -- /bin/sh -c ./meili ... Up 127.0.0.1:7700-7700/tcp
A partir de ahora, Meilisearch se reiniciará automáticamente cuando se reinicie el servidor. Si alguna vez lo necesitas, puedes detener el contenedor Docker navegando de nuevo al ~/docker-meilisearch
directorio y ejecutando docker compose stop
.
Esta docker-compose
configuración también creará un nuevo índice de búsqueda vacío que deberá volver a completar para continuar trabajando con los datos de muestra. Si necesita migrar alguna regla que haya creado con su índice existente, puede consultar la documentación de actualización de Meilisearch .
Su instancia de Meilisearch ahora también utiliza autenticación basada en claves, lo que requiere que se incluya un encabezado adicional con cada solicitud de API. Puede revisar la documentación de autenticación de Meilisearch para crear múltiples claves de autenticación con niveles de permiso más granulares, si es necesario.-H 'Authorization: Bearer 173e95f077590ed33dad89247247be8d8ce8b6722ccc87829aaefe3207be'
Conclusión
En este tutorial, implementó y configuró un índice de Meilisearch con Docker. Observó ejemplos de su análisis de consultas y sus estructuras de respuesta de API, así como su rendimiento de búsqueda en la interfaz web. Puede consultar Meilisearch mediante solicitudes JSON enviadas desde cualquier aplicación, de la misma manera que lo hizo con curl
. Experimentó con cambios en la ponderación de los resultados de búsqueda y creó un docker-compose.yml
archivo para administrar la ejecución de su servidor Meilisearch.
También creó una clave API y la conf
Deja una respuesta