zoukankan      html  css  js  c++  java
  • es使用--新建、删除、增删改数据

    # 进入bin目录
    cd /czz/elsearch/bin
    # 后台启动(不加-d参数则是前台启动,日志在控制台)
    # 后台启动日志如果不配置,在es目录的logs下面
    ./elasticsearch -d
    

    装完本机访问http://127.0.0.1:9200/

    {
      "name" : "node-1",
      "cluster_name" : "my-application",
      "cluster_uuid" : "wIk4z-UA***9cusPopZFBw",
      "version" : {
        "number" : "****",
        "build_flavor" : "default",
        "build_type" : "***",
        "build_hash" : "ef48eb35cf30adf****4db14086*1*e8aabd07ef6fb113f",
        "build_date" : "2020-03-26T06:34:37.794943Z",
        "build_snapshot" : false,
        "lucene_version" : "8.4.0",
        "minimum_wire_compatibility_version" : "****",
        "minimum_index_compatibility_version" : "***-beta1"
      },
      "tagline" : "You Know, for Search"
    }
    

    看到类似的返回即表示安装成功

    ElasticSearch中的基本概念

    索引

    ① 索引(index)是es对逻辑数据的逻辑存储,所以它可以分为更小的部分。类似于关系型数据库的table
    ② 索引的结构是为快速有效的全文索引准备的,特别是它不存储原始值。
    ③ Elasticsearch可以把索引存放在一台机器或者分散在多台服务器上,每个索引有一或多个分片,每个分片可以有多个副本。

    文档

    ① 存储在Elasticsearch中的主要实体叫文档(document)。相当于关系型数据库的一行数据
    ② es的文档中,相同字段必须有相同类型。
    ③ 文档由多个字段组成,每个字段可能多次出现在一个文档里,这样的字段叫多值字段(multivalued)。 每个字段的类型,可以是文本、数值、日期等。字段类型也可以是复杂类型,一个字段包含其他子文档或者数 组。

    映射

    ① 所有文档写进索引之前都会先进行分析,如何将输入的文本分割为词条、哪些词条又会被过滤,这种行为叫做 映射(mapping)。一般由用户自己定义规则。

    文档类型

    ① 在Elasticsearch中,一个索引对象可以存储很多不同用途的对象。
    ② 每个文档可以有不同的结构。
    ③ 不同的文档类型不能为相同的属性设置不同的类型。例如,在同一索引中的所有文档类型中,一个叫title的字段必须具有相同的类型。

    RESTful API

    ①创建索引

    PUT /czz_test
    {
        "settings": {
            "index": {
            "number_of_shards": "1", #分片数,一般单机一片即可
            "number_of_replicas": "0" #副本数
            }
        }
    }
    

    ②删除索引

    DELETE /czz_test
    {
    	"acknowledged": true
    }
    

    ③插入数据
    URL规则: POST /{索引}/{类型}/{id}

    POST /czz_test/user/1001  #不指定ID插入时会自动生成
    {
      "id":1001,
      "name":"张三",
      "age":20,
      "sex":"男"
    }
    

    返回:

    {
        "_index": "czz_test",
        "_type": "user",
        "_id": "0001",
        "_version": 1,
        "result": "created",
        "_shards": {
            "total": 2,
            "successful": 1,
            "failed": 0
        },
        "_seq_no": 0,
        "_primary_term": 1
    }
    

    ④更新数据
    在es中数据是不可修改的,但是可以通过覆盖的方式进行更新,此时_version属性值会加一

    PUT /czz_test/user/1001
    {
    "id":1001,
    "name":"张三",
    "age":21,
    "sex":"女"
    }
    

    如果要仅仅更新某个字段,需要在url路径增加_update标记,同时需要将要更新的字段放在doc里面,同时_version也会加一

    #注意:这里多了_update标识
    POST /czz_test/user/1001/_update
    {
    "doc":{
    "age":23
    }
    }
    

    ⑤删除数据

    DELETE  /czz_test/user/1001   #删除id为1001的数据
    DELETE /czz_test/    #删除该索引的所有数据
    
    欢迎大家留言,以便于后面的人更快解决问题!另外亦欢迎大家可以关注我的微信公众号,方便利用零碎时间互相交流。共勉!

    路漫漫其修远兮,吾将上下而求索。。。

  • 相关阅读:
    IKAnalyzer兼容Lucene 5.4.0版本抛出异常?
    Lucene--FuzzyQuery与WildCardQuery(通配符)
    Lucene之模糊、精确、匹配、范围、多条件查询
    CentOS6.5中使用 iperf 检测主机间网络带宽
    文件切割
    CURL命令测试网站打开速度
    不限定访问,支持跨域
    Mysql错误: ERROR 1205: Lock wait timeout exceeded try restarting transaction解决办法
    tomcat链接mysql时超时报错java.io.EOFException: Can not read response from server. Expected to read 4 bytes,
    分享一个很好的工具网址
  • 原文地址:https://www.cnblogs.com/caozz/p/esstudy.html
Copyright © 2011-2022 走看看