zoukankan      html  css  js  c++  java
  • 初识es

    参考博客:https://segmentfault.com/a/1190000018783302

      在本地启动ElasticSearch服务后,ES默认监听9200端口,我们的查询,修改和添加等操作都会在该端口完成。客户端和ES的交互使用http协议,接口设计使用restful风格,使用起来非常简洁友好。换句话说,我们可以直接使用POSTMAN和ES进行交互,通过发送PUT,GET,DELETE等请求,来完成数据的CRUD操作。http协议对编程语言也非常友好,因为几乎所有编程语言都支持http协议,大大降低了使用门槛,这些也是ES非常流行的原因。

      ES中有几个概念需要提前了解,ES不同于传统数据库,它的数据存储的单位和关系型数据库会略有差别,有些可能只是叫法不一样,我认为本质还是一样的。以大家经常使用的MySQL为例,我们对数据存储单元会有下面这几个等级的划分,从大到小排列,分别为database,table,row,column。分别表示 数据库。同样的,在ES中也有数据单元的划分,下图表示ES中数据存储单元和MySQL数据存储单元的对应关系。

    1.插入数据

    curl -X PUT "192.168.66.135:9200/megacorp/employee/1" -H 'Content-Type: application/json' -d'
    {
        "first_name" : "John",
        "last_name" :  "Smith",
        "age" :        25,
        "about" :      "I love to go rock climbing",
        "interests": [ "sports", "music" ]
    }

    上面的命令,在 index 为 megacorp,并且 Type 为 employee 下面创建了一条数据,id 是 1,如果不指定 id 的话,es 会自动生成。

    注意:如果 es 中没有命令中的 index ,它会自动创建,所以,插入数据的时候,需要注意 index 名称的正确性。

    2.更新数据,还是使用上面的命令,重新 PUT 即可

    3.删除数据,使用 DELETE 命令,例如删除上面插入的数据:curl -X DELETE "192.168.66.135:9200/megacorp/employee/1"

    2. 索引

    4.查看 es 中所有的 index 情况:curl -X GET "192.168.66.128:9200/_cat/indices?v"

      如果是在后台可以直接   es   idx   查看所有的索引

    5.删除 index :curl -X DELETE '192.168.66.135:9200/megacorp' ,删除名为 megacorp 的 index

    3. 搜索

    6.查看 es 中的所有数据:http://192.168.66.128:9200/_search ,这条命令还可以加上一些其他的条件,例如:

    • 查看 megacorp 索引下的所有数据:http://192.168.66.128:9200/megacorp/_search
    • 查看 megacorp1, megacorp2 两个 索引下的所有数据:http://192.168.66.128:9200/megacorp1,megacorp2/_search
    • 查看 megacorp 索引下的 employee 类型的数据:http://192.168.66.128:9200/megacorp/employee/_search
    • 在所有的索引中搜索 user1 和 user2 类型的数据:http://192.168.66.128:9200/_all/user1,user2/_search

    7.简单搜索:例如要查找 source 下面 message 这一列的数据中,包含 了某个字符串(这里以 connect 为例)的所有记录:http://192.168.66.135:9201/filebeat-6.5.4-2019.04.06/_search?q=message:connect

    8.全文搜索,可实现上面这种包含某个字符串的搜索,搜索的文本如下:

    curl -X GET "192.168.66.135:9200/megacor/search" -H 'Content-Type: application/json' -d'
    {
        "query" : {
            "match" : {
                "message" : "connect"
            }
        }
    }

    9.搜索分页:

    • 从搜索的结果中选取前 50 条记录:http://192.168.66.128:9200/megacorp/_search?size=50
    • 从第 3 页中选取 10 条记录:http://192.168.66.128:9200/megacorp/_search?size=10&from=3
  • 相关阅读:
    SpriteKit改变Node锚点其物理对象位置不对的解决
    亲热接触Redis-第二天(Redis Sentinel)
    Java设计模式(二)-单例模式
    Android—构建安全的Androidclient请求,避免非法请求
    自己主动化測试使用mybatis更新数据库信息实例
    UML回想-通信图
    第十六课 数组的引入 【项目1-5】
    被这个样式惊醒
    netty自定义解码器
    解决netty客户端接收报文不完整的情况
  • 原文地址:https://www.cnblogs.com/taysem/p/11428056.html
Copyright © 2011-2022 走看看