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: 权威指南


posted @ 2019-02-20 15:54  codercg  阅读(597)  评论(0编辑  收藏  举报