es 的数据操作

一、ES数据的操作

1.创建索引

1)语法
PUT /<index>
2)示例
PUT /index

curl -XPUT 'http://10.0.0.71:9200/index'

2.创建数据

1)数据结构
ES存储三个必要构成
_index
_type
_id
构成 说明
_index 索引(数据存储的地方)
_type 类型(数据对应类)
_id 数据的唯一标识
2)语法
PUT /<index>/_doc/<_id>
POST /<index>/_doc/
PUT /<index>/_create/<_id>
POST /<index>/_create/<_id>

index:索引的名称,如果索引不存在,会自动创建
_doc:类型
_id:唯一标识,可以手动指定,也可以自动生成
3)使用自定义ID插入数据
PUT /index/_doc/1
{
  "name":"qiudao",
  "age":"18"
}

#该方式企业应用较少
	1.需要修改id的值
	2.指定ID插入数据时,ES会先拿着指定的id去对比一遍所有数据,看看有没有相同值
4)使用随机ID插入数据
POST /index/_doc/
{
  "name":"qiudao",
  "age":"20"
}
5)添加字段指定ID
POST /index/_doc/
{
  "id":"1",
  "name":"qiudao",
  "age":"20"
}

3.查询数据

1)简单查询
#查询所有索引的(信息)
GET /_all
GET _all

#查看所有索引的(数据)
GET /_all/_search

#查看指定索引的信息
GET /teacher

#查看指定索引的数据
GET /teacher/_search

#查看索引中指定的数据
GET /teacher/user/2
GET /teacher/user/1m-gGHYB5ia7o7wd9dPk
2)单条件查询
1>方法一:
GET /teacher/_search
{
  "query": {
    "term": {
      "age": {
        "value": "18"
      }
    }
  }
}
2>方法二:
GET /teacher/_search
{
  "query": {
    "term": {
      "age": "18"
    }
  }
}
3>方法三:
GET /teacher/_search
{
  "query": {
    "match": {
      "age": "18"
    }
  }
}

#指定条件可以使用term也可以使用match,term搜索数据时不进行分词,适合进行精确查找,match搜索时进行分词适用于全文检索
3)多条件查询
1>must查询(and)
#多个查询条件必须全部满足  &
GET /teacher/_search
{
  "query": {
    "bool": {
      "must": [
        {
          "term": {
            "age": {
              "value": "18"
            }
          }
        },
        {
          "term": {
            "sex": {
              "value": "nv"
            }
          }
        }
      ]
    }
  }
}
2>filter查询(and)
#跟must作用一样,但是速度要比must快一点
GET /teacher/_search
{
  "query": {
    "bool": {
      "filter": [
        {
          "term": {
            "age":"18"
          }
        },
        {
          "term": {
            "sex":"nv"
          }
        }
      ]
    }
  }
}
3>should查询(or)
#多条件查询时,符合其中一个条件就可以  |
GET /teacher/_search
{
  "query": {
    "bool": {
      "should": [
        {
          "term": {
            "age": {
              "value": "18"
            }
          }
        },
        {
          "term": {
            "id": {
              "value": "5"
            }
          }
        }
      ]
    }
  }
}

4)must_not(not)

GET /teacher/_search
{
  "query": {
    "bool": {
      "must_not": [
        {
          "term": {
            "age": {
              "value": "18"
            }
          }
        },
        {
          "term": {
            "id": {
              "value": "5"
            }
          }
        }
      ]
    }
  }
}
5)must和should结合使用
#查询年龄是21或者年龄是18岁并且名字是lizhenglin的数据
GET /teacher/_search
{
  "query": {
    "bool": {
      "should": [
        {
          "term": {
            "age": {
              "value": "21"
            }
          }
        },
        {
          "bool": {
            "must": [
              {
                "term": {
                  "age": {
                    "value": "18"
                  }
                }
              },
              {
                "term": {
                  "name": {
                    "value": "lizhenglin"
                  }
                }
              }
            ]
          }
        }
      ]
    }
  }
}

4.修改数据

#修改数据通过_id进行修改,修改数据是,除了要修改的字段意外,其他的字段也要全部写上
PUT /teacher/user/9G-FHXYB5ia7o7wdEdOH
{
  "id":"6",
  "name":"wananfeng",
  "sex":"nan",
  "age":"25"
}

5.删除数据

#删除指定数据,通过_id进行选择删除
DELETE /teacher/user/9G-FHXYB5ia7o7wdEdOH

#删除索引
DELETE /teacher
原文地址:https://www.cnblogs.com/xiaolang666/p/14070287.html