和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 已完成