zoukankan      html  css  js  c++  java
  • ES-实战

     一、环境准备
    操作系统:mac
    依赖的软件:JDK1.8、Postman、NodeJs6.0以上、Maven、Idea
    ES下载:Elastic官方网站: http://www.elastic.co 、版本:elasticsearch-7.1.0-darwin-x86_64.tar
    集群模式:一主两从,集群安装参考:https://www.cnblogs.com/liuxiaoming123/p/8081883.html
    ES可视化管理插件:GitHub上寻找:elasticsearch-head
     
    二、实际操作
     
    1. 启动集群
    进入到各自的bin目录
    sh ./elasticsearch
     
    2. 启动管理插件
    在这个插件目录下:npm run start
     
    3. 实际操作
     API基本格式:http://ip:port/索引/类型/文档id
    常用http动词:GET/PUT/POST/DELETE
     
     
    目录:
    一、索引创建
    1. 非结构化创建
    2. 结构化创建
    二、插入
    1. 指定文档ID插入
    2. 自动产生文档ID插入
    三、修改
    1. 直接修改文档
    2. 脚本修改文档
    四、删除
    1. 删除文档
    2. 删除索引
    五、查询
    1. 简单查询
    2. 条件查询
    3. 聚合查询
     
    正文:
    一、索引创建
    1. 非结构化创建
    1.1 浏览器输入:localhost:9100
     
    1.2 点索引tab页,并创建索引
     
    输入索引名称:task,分片数:5,副本数: 1,点OK
    弹出如下提示:表示创建成功,点确定
     
    出现下图:
    1.3 在预览中查看
     
    1.4 点索引信息,查看结构化和非结构化索引信息
    2. 结构化创建
    2.1 点击 复合查询
    2.2 加入:task/novel/_mappers
    { "novel": { "properties": { "title": { "type": "text" } } } }
        2.3 勾选易读
      2.4点击 验证JSON
      2.5点击 提交请求
    2.6 点击概览,刷新页面
     
    2.7 在postman中编写json字符串(采取put提交方式提交)
    注意:从7.0版本及之后的版本写法和之前的版本有很大的区别
    在Elasticsearch 7.0.0或更高版本中创建的索引可能只包含单个映射类型。在具有多种映射类型的5.x中创建的索引将继续像以前一样在Elasticsearch 6.x中运行。映射类型将在Elasticsearch 7.0.0中完全删除
     
    2.8 刷新页面,看索引信息中的mapping
     
     
    mappings不为空,为结构化创建索引
     
    二、插入
     
    1. 指定文档ID插入
    postman中的请求:127.0.0.1:9200/people/_doc/1
    请求内容:
    {
    "name":"小宋",
    "country":"china",
    "age":26,
    "date":"1992-08-08"
    }
    控制台刷新
    进行数据浏览,看插入的数据
     
    2. 自动产生文档ID插入
    postman输入(post请求):127.0.0.1:9200/people/_doc/
    写入内容
    {
    "name":"小宋自动生产",
    "country":"china",
    "age":26,
    "date":"1992-08-08"
    }
     
    刷新控制台
     
    看数据预览
     
     
    三、修改
    1. 直接修改文档
    postman输入(post):127.0.0.1:9200/people/_doc/1/_update
    修改内容
    {
    "doc":{
    "name":"小宋-天地玄黄"
    }
    }
    点send,看一下
    刷新一下数据浏览,id=1的 name 被修改了
     
     
    2. 脚本修改文档
    1)方式一:
    postman中输入(post):127.0.0.1:9200/people/_doc/1/_update
    修改内容
    {
    "script":{
    "lang":"painless",
    "inline":"ctx._source.age += 10"
    }
    }
    send执行:
    刷新控制台,看数据浏览
     
     
     
    2)方式二
    postman输入(post):127.0.0.1:9200/people/_doc/1/_update
    修改内容:
    {
    "script":{
    "lang":"painless",
    "inline":"ctx._source.age = params.age",
    "params":{
    "age":100
    }
    }
    }
    send执行
    控制台刷新,看数据浏览,age变成了100
     
     
    四、删除
    1. 删除文档
    概览中,点people下的动作,展开列表,看删除,
     
    点删除,弹出删除确认对话框,需要输入“删除”两个字,才能删除
     
    2. 删除索引
    postman输入(delete):127.0.0.1:9200/people/_doc/1
    删除时,不需要输入内容
    执行send
     
    五、查询
    1. 简单查询
    postman输入(get):127.0.0.1:9200/people/_doc/1
    不用输入内容:
    执行send,看查询结果
    2. 条件查询
    match_all 是全部查询
    query 是查询关键字
    from 是从哪里查
    size 是显示多少条数据
    sort 是排序设置
    1)方式1,查询全部
    postman输入(post):127.0.0.1:9200/people/_search
    查询条件:
    {
    "query":{
    "match_all":{}
    },
    "from":1,
    "size":3
    }
    查询全部,match_all 为 {}
     
     
     
     
     
    2)方式2:按关键字查询
    postman中输入(post):127.0.0.1:9200/people/_search
    查询条件:
    {
    "query":{
    "match":{
    "name":"小宋"
    }
    },
    "sort":[
    {"_id":"desc"}
    ]
    }
    people中带小宋的,都查询出来,并且按id排倒叙
     
      
     
     
    3. 聚合查询
    聚合提供了用户进行分组和数理统计的能力,可以把聚合理解成SQL中的GROUP BY和分组函数
    指标聚合/桶聚合
    Metrics(度量/指标):简单的对过滤出来的数据集进行avg,max操作,是一个单一的数值
    Bucket(桶):将过滤出来的数据集按条件分成多个小数据集,然后Metrics会分别作用在这些小数据集上
     
    postman输入(post):127.0.0.1:9200/people/_search
    查询条件:
    {
    "aggs":{
     
    "group_by_date":{
    "terms":{
    "field":"date"
    }
    },
    "group_by_age":{
    "terms":{
    "field":"age"
    }
    }
     
    }
    }
    执行send
    返回结果
     
     
     

  • 相关阅读:
    shell函数使用
    laravel调试神器tinker
    laravel 5.1 单元测试 Cannot modify header information 错误
    angular 使用rxjs 监听同级兄弟组件数据变化
    angular 有关侦测组件变化的 ChangeDetectorRef 对象
    XML文件操作类--创建XML文件
    (收藏)C#实现截屏
    (转)C#操作PPT
    (转).NET代码混淆实践
    (整理)RPC
  • 原文地址:https://www.cnblogs.com/love-jk/p/es-act.html
Copyright © 2011-2022 走看看