MeiliSearch 索引和文档操作http请求示例

标签:

本文出自jvm123.com-java技术分享站:http://jvm123.com/2021/01/meilisearch-http.html

和elasticsearch一样,melisearch也使用http请求对索引和文档进行操作,常用的http请求如下:

以下示例的url中,“http://jvm123.com:7700”为MeilisSearch的地址和端口,“movies”为索引的名称。

MeiliSearch 索引操作

查询所有索引信息

GET http://jvm123.com:7700/indexes

查询一个索引信息

GET http://jvm123.com:7700/indexes/movies

创建索引

POST http://jvm123.com:7700/indexes
Content-Type: application/json

{
  // uid是必需的字段
  "uid" : "movies",
  "primaryKey": "id"
}

更新索引

PUT http://jvm123.com:7700/indexes
Content-Type: application/json

{
  "uid" : "movies",
  "primaryKey": "id"
}

删除索引

DELETE http://jvm123.com:7700/indexes/pets

MeiliSearch 文档操作

查询索引下的所有文档

参数 offset、limit、attributesToRetrieve=*

GET http://jvm123.com:7700/indexes/movies/documents

查询的单个文档

2 为文档的primaryKey

GET http://jvm123.com:7700/indexes/movies/documents/2

添加或替换文档

添加或替换文档(如果id存在,则替换文档),如果指定的index不存在,则自动创建index。

POST http://jvm123.com:7700/indexes/movies/documents
Content-Type: application/json

[
  {
   "id": "5",
   "title" : "暖的抱抱",
   "des" : "对整洁和计划有着超乎常人执念的鲍抱(常远 饰),本以为自己是一个友情爱情的绝缘体,但在遇到个性率真的宋温暖(李沁 饰) 、妙手“神经”的贾医生(沈腾 饰)和假仁假义的王为仁(乔杉 饰)之后,上演了一段阴差阳错的喜剧故事……",
   "actors" : "常远,李沁,沈腾,乔杉"
  },
  {
   "id": "6",
   "名称" : "缉魂",
   "剧情简介" : "著名集团董事长王世聪惨死家中,负责此案的检察官梁文超(张震 饰)与妻子刑警阿爆(张钧甯 饰)在调查中得知:死者的儿子王天佑(林晖闵 饰),年轻的新婚妻子李燕(孙安可 饰),多年合伙人万宇凡(李铭顺 饰),甚至死去的前妻唐素贞(张柏嘉 饰),每个人之间都有着错综复杂的关联。阿爆更是发现隐藏在案件背后的惊人秘密……",
   "演员" : "张震,张钧甯,孙安可"
  }
]

添加或更新文档

添加或更新文档 (如果id存在,则更新文档)

PUT http://jvm123.com:7700/indexes/posts/documents
Content-Type: application/json

[
  {
   "id": 1,
   "author" : "yawn",
   "观后感" : "这部电影很好看。",
   "演员" : "张震,张钧甯,孙安可"
  }
]

删除索引下的所有文档

DELETE http://jvm123.com:7700/indexes/movies/documents

删除单个文档

DELETE http://jvm123.com:7700/indexes/movies/documents/1

批量删除文档

批量删除文档,请求体为id的数组。

POST http://jvm123.com:7700/indexes/movies/documents/delete-batch
Content-Type: application/json

["1", "2", "3"]

MeiliSearch搜索文档

搜索有get和post两种方式,官方推荐使用post方法。

POST http://jvm123.com:7700/indexes/movies/search
Content-Type: application/json

{
"q": "一",
"limit": 3,
"offset": 1
// "filters": "age > 18" // 要求字段事数值类型的
}

MeiliSearch 的 update (异步更新)

每个create/update/delete请求,都会将操作放入一个队列中,并返回一个updateId,使用这个updateId,就可以查询这次操作的结果状态。

查询一个异步更新的状态

GET http://jvm123.com:7700/indexes/movies/updates/5

// 5 为操作后返回的 updateId
// status 为 processed/failed 表示成功或失败的状态
// type.name 为 DocumentsAddition/DocumentsPartial/DocumentsDeletion,分别对应post/put/delete方法的操作

查询所有异步更新的状态

GET http://jvm123.com:7700/indexes/movies/updates

其它请求操作

查询keys

GET http://jvm123.com:7700/keys

查询索引的settings信息

GET http://jvm123.com:7700/indexes/movies/settings

stats 查询MeiliSearch的指标信息

GET http://jvm123.com:7700/stats

索引的指标信息

GET http://jvm123.com:7700/indexes/movies/stats

health

GET http://jvm123.com:7700/health

version

GET http://jvm123.com:7700/version

dump 备份

POST http://jvm123.com:7700/dumps

返回结果如下,“20210118-103935567”为这次备份的uid,.dump备份文件 在MEILI_DUMPS_DIR所指定的位置

{
  "uid": "20210118-103935567",
  "status": "in_progress"
}

查询dump 备份的完成状态

GET http://jvm123.com:7700/dumps/20210118-103935567/status

// status 为 done 已完成

发表评论