Elastic Search 语法总结
1. 插入
PUT /megacorp/employee/1 { "first_name" : "John", "last_name" : "Smith", "age" : 25, "about" : "I love to go rock climbing", "interests": [ "sports", "music" ] }
对应的完整curl命令为:
curl -X PUT "localhost:9200/megacorp/employee/1" -H 'Content-Type: application/json' -d'
{
"first_name" : "John",
"last_name" : "Smith",
"age" : 25,
"about" : "I love to go rock climbing",
"interests": [ "sports", "music" ]
}
'
注意,路径 /megacorp/employee/1
包含了三部分的信息:
megacorp
- 索引名称
employee
- 类型名称
1
- 特定雇员的ID
请求体 —— JSON 文档 —— 包含了这位员工的所有详细信息,他的名字叫 John Smith ,今年 25 岁,喜欢攀岩。
2. 检索
检索指定文档
GET /megacorp/employee/1
tip: 将 HTTP 命令由PUT
改为GET
可以用来检索文档,同样的,可以使用DELETE
命令来删除文档,以及使用HEAD
指令来检查文档是否存在。如果想更新已存在的文档,只需再次PUT
。
检索所有文档(一个搜索默认返回十条结果)。
GET /megacorp/employee/_search
尝试下搜索姓氏为 ``Smith`` 的雇员,使用查询字符串 (_query-string_) 轻量搜索
GET /megacorp/employee/_search?q=last_name:Smith
这个简单搜索返回包含 mary
的所有文档:
GET /_search?q=mary
tip:当索引一个文档的时候,Elasticsearch 取出所有字段的值拼接成一个大的字符串,作为_all
字段进行索引。除非设置特定字段,否则查询字符串就使用_all
字段进行搜索。
查询表达式 查询所有 Smith 的搜索 :
GET /megacorp/employee/_search { "query" : { "match" : { "last_name" : "Smith" } } }
3. 删除
将 GET 方法换成 DELETE 就可以了。
4. 索引别名
添加
POST /_aliases { "actions" : [ { "add" : { "index" : "test1", "alias" : "alias1" } } ] }
删除
POST /_aliases { "actions" : [ { "remove" : { "index" : "test1", "alias" : "alias1" } } ] }
更多参考:https://www.elastic.co/guide/en/elasticsearch/reference/7.1/indices-aliases.html#
5. 清空索引
POST indexName/_delete_by_query { "query": { "match_all": { } } }
其中 query 可选。
参考:Elasticsearch: 权威指南