美文网首页
Elasticsearch-HttpAPI

Elasticsearch-HttpAPI

作者: 言字诀 | 来源:发表于2017-12-04 20:24 被阅读0次

    1.添加索引

    添加索引person,类型为student,主键为1

    curl -X PUT -H "Content-Type: application/json" -d 
    '{"id":1,"name":"yyc1","age":27,"interets":["game","basketball"]}' 
    'http://localhost:9200/person/student/1' -i
    

    当主键ID已存在时Elasticsearch执行的操作是将原来的文档置为失效,新增一个文档,文档版本号+1,如果要实现ID存在不新增的逻辑,url如下:

    http://localhost:9200/person/student/1?op_type=create
    or
    http://localhost:9200/person/student/1/_create
    

    2.获取索引数据

    获取索引person,类型student,主键为1的文档数据

    curl "http://localhost:9200/person/student/1"
    
    {
        "_index":"person",
        "_type":"student",
        "_id":"1",
        "_version":1,
        "found":true,
        "_source":{
            "id":1,
            "name":"yyc1",
            "age":27,
            "interests":[
                "game",
                "basketball"
            ]
        }
    }
    

    3.修改索引

    修改ID=1的文档数据,再次使用PUT命令即可,字段存在更新字段,否则新增字段。Elasticsearch内部实际上是将原来的文档置为失效,合并原有文档和传入的文本,新增一个全新的文档,版本号+1

    curl -X PUT -H "Content-Type: application/json" -d '{"id":1,"name":"yyc1","age":27,"interets":["game","basketball","movies"],"desc":"modify index"}' 'http://localhost:9200/person/student/1' -i
    

    修改后结果

    
        "_index":"person",
        "_type":"student",
        "_id":"1",
        "_version":2,
        "found":true,
        "_source":{
            "id":1,
            "name":"yyc1",
            "age":27,
            "intreets":[
                "game",
                "basketball",
                "movies"
            ],
            "desc":"modify index"
        }
    }
    

    4.删除索引

    删除ID=1的文档数据,Elasticsearch不会立即删除这些文档,先置为失效状态,后台慢慢处理要删除的文档。

    curl -X DELETE "http://localhost:9200/person/student/1" -i
    

    5.Lucene语法索引数据

    索引name=yyc3并且age=18的数据

    curl -X GET 'http://localhost:9200/person/student/_search?q=name:"yyc3" AND age:18'
    

    hits数组是查询结果,total是匹配的总数,默认返回10条数据

    {
        "took":3,
        "timed_out":false,
        "_shards":{
            "total":5,
            "successful":5,
            "skipped":0,
            "failed":0
        },
        "hits":{
            "total":1,
            "max_score":1.287682,
            "hits":[
                {
                    "_index":"person",
                    "_type":"student",
                    "_id":"3",
                    "_score":1.287682,
                    "_source":{
                        "id":3,
                        "name":"yyc3",
                        "age":18,
                        "intreests":[
                            "game",
                            "basketball",
                            "java"
                        ],
                        "desc":"java developer"
                    }
                }
            ]
        }
    }
    

    6.判断文档是否存在

    HTTP状态码200-存在,404-不存在

    curl -XHEAD "http://localhost:9200/person/student/1"
    

    7.批量获取文档数据

    必选:索引_index,类型_type,主键_id
    可选:_source指定返回字段,默认所有
    未被索引到的found=fasle

    curl "http://localhost:9200/_mget"
    {
       "docs" : [
          {
             "_index":"xxx",
             "_type":"xxx",
             "_id":xxx,
             "_source":["xxx","xxx",...]
          },
          {
             "_index" : "xxx",
             "_type" :  "xxx",
             "_id" :    xxx,
             "_source":["xxx","xxx",...]
          },
         ...
       ]
    }
    

    相同索引/类型

    curl "http://localhost:9200/profilecenter/profile/_mget"
    {
      "ids":[1,2,3...]
    }
    

    返回结构

    
    {
        "docs":[
            {
                "_index":"xxx",
                "_type":"xxx",
                "_id":xxx,
                "_version":xxx,
                "found":true/false,
                "_source":{xxx}
            },
            {
                "_index":"xxx",
                "_type":"xxx",
                "_id":xxx,
                "_version":xxx,
                "found":true/false,
                "_source":{xxx}
            }
        ]
    }
    

    相关文章

      网友评论

          本文标题:Elasticsearch-HttpAPI

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