搜索引擎elasticsearch(二)--http接口数据操作

一、简介

这里将介绍,通过http请求,对es进行索引和数据操作。es中使用的是REST api方式,即通知http的方法不同来执行

不同的操作。

操作主要有两块,一是对索引本身的操作;二是对索引数据的操作。都包含了增删改查操作。

二、操作

这里直接上代码,解释请参考注释。

#!/usr/bin/env bash

host="127.0.0.1"
port=9200
index="stu"
type="doc"

#################### 索引元数据操作 ###############################
#查看所有索引
curl -s -XGET "${host}:${port}/_cat/indices"

#创建索引
curl -s -XPUT "${host}:${port}/${index}" -d '
    {
        "settings" : {
            "number_of_shards" : 1,
            "number_of_replicas" : 2
        },
        "mappings":{
          "doc" : {
            "properties" : {
              "id" : {
                "type" : "long"
              },
              "stuId" : {
                "type" : "string",
                "index": "not_analyzed"
              },
              "stuName" : {
                "type" : "string",
                "index": "not_analyzed"
              }
            }
          }
        }
    }
'

#查看指定索引所有元数据
curl -s -XGET "${host}:${port}/${index}?pretty"

##查看索引mapping(类似于表字段设置)
curl -s -XGET "${host}:${port}/${index}/_mapping?pretty"
#
#查看settings
curl -s -XGET "${host}:${port}/${index}/_settings?pretty"

#删除索引
curl -s -XDELETE "${host}:${port}/${index}"
#################################################################



########################## 索引数据操作 #########################
#查看指定索引数据
curl -s -XGET "${host}:${port}/${index}/_search?pretty"

##查看指定索引数据,并指定查询起点及个数
curl -s -XGET "${host}:${port}/${index}/_search?pretty&from=0&size=200"

##直接在url地址后添加查询参数
curl -s -XGET "${host}:${port}/${index}/_search?pretty&q=stuName:apple7"

#根据指定索引指定id查看数据
doc_id="21"
curl -s -XGET "${host}:${port}/${index}/${type}/${doc_id}?pretty"

#根据指定json条件查询(方式一),query_json_file为json格式的查询条件,内容如下一项查询条件类似
query_json_file="stu_query.json"
curl -H 'content-type:application/json' -s -XGET "${host}:${port}/${index}/_search?pretty" -d @${query_json_file}

#根据指定json条件查询(方式二),直接指定
curl -H 'content-type:application/json' -s -XGET "${host}:${port}/${index}/_search?pretty" -d '
  {
  "query":{
    "match":{
      "stuName":"apple21"
    }
  }
}
'

#添加或更新数据(方式一,json文件,内容如下一项类似)
doc_id="21"
stu_obj_file="/home/china/shell_space/my_study/stu_obj.json"
curl -H 'content-type:application/json' -s -XPUT "${host}:${port}/${index}/${type}/${doc_id}" -d @${stu_obj_file}

#添加或更新数据(方式二,直接指定json)
curl -H 'content-type:application/json' -s -XPUT "${host}:${port}/${index}/${type}/${doc_id}" -d '
{
  "id" : 21,
  "stuId" : "021",
  "stuName" : "apple21"
}
'

#更新数据
doc_id="21"
curl -s -XPOST "${host}:${port}/${index}/${type}/${doc_id}/_update" -d '
{
  "doc":{
    "stuName":"applwwe"
  }
}
'

#删除数据
doc_id="21"
curl -s -XDELETE  "${host}:${port}/${index}/${type}/${doc_id}"
#######################################################################



你可能感兴趣的:(shell,搜索)