美文网首页
elasticsearch 5.4 增删改查

elasticsearch 5.4 增删改查

作者: aldren | 来源:发表于2017-06-21 11:50 被阅读0次

    增删改

    注:以下HTTP请求省略ip和端口,例如

    "http://192.168.181.130:9200/megacorp/employee/aaa" 将简写为 "/megacorp/employee/aaa" 
    

    官方API
    https://www.elastic.co/guide/cn/elasticsearch/guide/current/search-in-depth.html
    1.增加、更新文档

    #当该文档存在时将进行更新
    PUT /megacorp/employee/aaa
    {
    "first_name" : "John",
    "last_name" : "Smith",
    "age" : 25,
    "about" : "I love to go rock climbing",
    "interests": [ "sports", "music" ]
    }
    #megacorp--> 索引名称
    #employee-->类型
    #aaa-->文档的id
    
    

    局部更新

    POST /megacorp/employee/aaa/_update
    {
      "doc": {
        "last_name": "f1lk"
      }
    }
    

    2.删除文档

    DELETE /megacorp/employee/aaa
    

    文档的检索

    1.根据索引、 类型和ID

    GET /megacorp/employee/aaa
    

    2.根据索引和类型

    #返回megacorp索引的所有employee数据
    GET /megacorp/employee/_search
    

    3.简单条件查询

    GET /megacorp/employee/_search?q=last_name:Smith
    

    4使用DSL语句查询
    DSL(Domain Specific Language特定领域语言)以JSON请求体的形式出现

    #match-->分词模式匹配计算相关性
    POST /megacorp/employee/_search
    {
      "query": {
        "match": {
          "last_name": "Smith"
        }
      }
    }
    
    #短语搜索 模糊匹配
    POST /megacorp/employee/_search
    {
      "query": {
        "match_phrase": {
          "about": "rock climbing"
        }
      }
    }
    

    5.聚合
    5.x的版本的聚合这些操作用单独的数据结构(fielddata)缓存到内存里了,故做聚合前需要针对text类型的字段的聚合设置开启(一般不建议对text 类型做分组聚合),其他类型的字段无需设置
    简单来说就是在聚合前执行如下操作

    PUT megacorp/_mapping/employee/
    {
      "properties": {
        "interests": { 
          "type":     "text",
          "fielddata": true
        }
      }
    }
    

    这样就可以针对"interests"字段做聚合搜索了

    POST /megacorp/employee/_search 
    { 
      "aggs": { 
        "all_interests": { 
          "terms": { "field": "interests" } 
        } 
      } 
    }
    

    相关文章

      网友评论

          本文标题:elasticsearch 5.4 增删改查

          本文链接:https://www.haomeiwen.com/subject/erizqxtx.html