meilisearch

Meilisearch 全文搜索引擎

补充说明

Meilisearch 是轻量级全文搜索和即时搜索服务,开箱即用,支持拼写容错、过滤、排序和同义词。默认端口 7700,适合站内搜索和中小规模文档检索。

常用示例

启动服务:

docker run -d --name meilisearch \
  -p 7700:7700 \
  -e MEILI_MASTER_KEY='***' \
  -v $(pwd)/meili_data:/meili_data \
  getmeili/meilisearch:v1.11

创建索引并导入文档:

curl -X POST 'http://localhost:7700/indexes/docs/documents' \
  -H 'Authorization: Bearer ***' \
  -H 'Content-Type: application/json' \
  -d '[{"id":1,"title":"磁盘满排查","tag":"linux"},{"id":2,"title":"端口占用排查","tag":"linux"}]'

搜索:

curl 'http://localhost:7700/indexes/docs/search' \
  -H 'Authorization: Bearer ***' \
  -H 'Content-Type: application/json' \
  -d '{"q":"磁盘","limit":5,"filter":"tag = linux"}'

配置可过滤和可排序字段:

curl -X PUT 'http://localhost:7700/indexes/docs/settings/filterable-attributes' \
  -H 'Authorization: Bearer ***' \
  -H 'Content-Type: application/json' \
  -d '["tag"]'

导出 dump:

curl -X POST 'http://localhost:7700/dumps' -H 'Authorization: Bearer ***'

易错点与排错

读完自测

合上页面,先回答,再展开对照。

  1. filter 报错提示字段不可过滤,怎么办?
  2. 文档主键不是 id,导入时要注意什么?
  3. 服务要暴露到公网,最低限度要做什么?
答案
  1. 把字段加入 filterableAttributes。
  2. 需要指定 primaryKey。
  3. 设置 master key,否则任何人都能写入。