当前位置: 首页 > article >正文

Elaticsearch 学习笔记

文章目录

    • Elaticsearch 学习笔记
      • 一、什么是 Elaticsearch ?
      • 二、Elaticsearch 安装
        • 1 es 安装
        • 2 问题解决
        • 3 数据格式
      • 三、索引操作
        • 1 PUT 请求:在postman中,向 ES 服务器发 PUT 请求(PUT请求相当于创建的意思)
        • 2 GET 请求:GET 请求是获取的意思,获取指定的索引
        • 3 GET 请求获取全部索引
        • 4 DELETE:删除索引
      • 四、文档操作
        • 1 POST请求创建文档
        • 2 GET请求查询文档
        • 3 GET请求条件查询
        • 4 GET请求分页查询
        • 5 GET请求查询后排序
        • 6 PUT请求修改文档-全部覆盖:在请求体内贴入需修改的数据
        • 7 DELETE请求删除文档

Elaticsearch 学习笔记

一、什么是 Elaticsearch ?

Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,能够解决不断涌现出的各种用例。作为 ElasticStack 的核心,它集中存储您的数据,帮助您发现意料之中以及意料之外的情况。

The Elastic Stack,包括 Elasticsearch、Kibana、Beats 和 Logstash (也称为 ELK Stack)能够安全可靠地获取任何来源、任何格式的数据,然后实时地对数据进行搜索、分析和可视化。Elaticsearch,简称为ES,ES 是一个开源的高扩展的分布式全文搜索引擎,是整个 ElasticStack 技术栈的核心。它可以近乎实时的存储、检索数据:本身扩展性很好,可以扩展到上百台服务器,处理 PB 级别的数据。


二、Elaticsearch 安装

1 es 安装

Elaticsearch 官网地址:https://www.elastic.co/cn/

由于我的环境是 windows 环境,因此下载 windows 安装包即可。

下载完windows 安装包后,直接解压即可:
在这里插入图片描述
注意:9300端口为 es 集群间通信的端口,9200为浏览器访问的 http 协议 的restful 端口。

启动后浏览器访问:

http://localhost:9200/

出现以下页面则成功启动:

在这里插入图片描述

2 问题解决
  • es 是使用 java 开发的,且 7.8 版本的 es 需要jdk 1.8以上,默认安装包带有 jdk 环境,如果系统配置 JAVA HOME,那么使用系统默认的 jdk,如果没有配置使用自带的 jdk,一般建议使用系统配置的 jdk。

  • 双击启动窗口闪退,通过路径访问追踪错误,如果是“空间不足”,请修改 config/jvm.options 配置文件:

    # 设置 JVM 初始内存为1G。此值可以设置与-Xmx 相同,以避免每次垃圾回收完成后 JVM 重新分配内存
    # Xms represents the initial size of total heap space
    # 设置 JVM 最大可用内存为 1G
    # Xmx represents the maximum size of total heap space
    -Xms1g
    -Xmx1g 
    

3 数据格式

Elasticsearch 是面向文档型数据库,一条数据在这里就是一个文档。为了方便理解,我们将 Elasticsearch 里存储文档数据和关系型数据库 MySQL 存储数据的概念进行一个类比

在这里插入图片描述

ES 里的 Index 可以看作一个库,而 Types 相当于表,Documents 则相当于表的行。

三、索引操作

对比关系型数据库,创建索引就等同于创建数据库。

1 PUT 请求:在postman中,向 ES 服务器发 PUT 请求(PUT请求相当于创建的意思)
http://127.0.0.1:9200/shopping

在这里插入图片描述

2 GET 请求:GET 请求是获取的意思,获取指定的索引
http://127.0.0.1:9200/shopping

在这里插入图片描述

3 GET 请求获取全部索引
http://127.0.0.1:9200/_cat/indices?v

在这里插入图片描述

4 DELETE:删除索引
http://127.0.0.1:9200/shopping

在这里插入图片描述


四、文档操作

1 POST请求创建文档
{
    "title": "小米手机",
    "category": "小米",
    "images": "https://ts1.cn.mm.bing.net/th?id=OIP-C.NelZaFZYimRWyjjIrjd-QQHaGM&w=273&h=228&c=8&rs=1&qlt=90&o=6&pid=3.1&rm=2",
    "price": 3999.00
}
http://127.0.0.1:9200/shopping/_doc

在这里插入图片描述
这里的id是随机生成的,也可以采用put请求直接传入id:

http://127.0.0.1:9200/shopping/_doc/1001

在这里插入图片描述

2 GET请求查询文档

如果只查询某个指定的id,则在路径中直接指定即可:

// 在路径中指定id
http://127.0.0.1:9200/shopping/_doc/1001

如果要查询全部:

// 指定index并且使用_search
http://127.0.0.1:9200/shopping/_search

在这里插入图片描述

3 GET请求条件查询
http://127.0.0.1:9200/shopping/_search?q=category:小米

上述条件会查询出所有 category 字段为小米的元素。

直接在请求路径中拼接中文,很有可能会乱码,因此我们采用请求体查询:

http://127.0.0.1:9200/shopping/_search
{
    "query" : {
        "match": {
            "category" : "小米"
        }
    }
}

4 GET请求分页查询

在请求体中加入from和size即可。

http://127.0.0.1:9200/shopping/_search
{
    "query" : {
        "match": {
            "category" : "小米"
        }
    },
    "from": 0,
    "size": 2
}

5 GET请求查询后排序
http://127.0.0.1:9200/shopping/_search
{
    "query" : {
        "match": {
            "category" : "小米"
        }
    },
    "from": 0,
    "size": 2,
    "sort": {
        "price": {
            "order": "desc" // asc
        }
    }
}

6 PUT请求修改文档-全部覆盖:在请求体内贴入需修改的数据
http://127.0.0.1:9200/shopping/_doc/1001
{
    "title": "小米手机",
    "category": "小米",
    "images": "https://ts1.cn.mm.bing.net/th?id=OIP-C.NelZaFZYimRWyjjIrjd-QQHaGM&w=273&h=228&c=8&rs=1&qlt=90&o=6&pid=3.1&rm=2",
    "price": 4999.00
}

如果只修改指定的属性,则使用post请求:

http://127.0.0.1:9200/shopping/_update/1001

在这里插入图片描述

7 DELETE请求删除文档
http://127.0.0.1:9200/shopping/_doc/1001

在这里插入图片描述


http://www.kler.cn/news/160846.html

相关文章:

  • 量子纠缠通讯:未来信息技术的革新者
  • AI算力研究报告:智算供给格局分化国产化进程有望加速
  • 【华为网络-配置-025】- 同 VLAN 下不同网段通信(启用 Sub 地址)
  • 圆通单号查询,圆通速递物流查询,对需要的单号进行颜色标记
  • 你了解架构图吗?
  • pytorch中的transpose用法
  • Verilog开源项目——百兆以太网交换机(四)令牌桶管理单元设计
  • CSS-2
  • php中WebSocket简单使用
  • C++——红黑树
  • uniapp实战 —— 自定义顶部导航栏
  • GPT 中文提示词技巧:参照 OpenAI 官方教程
  • mysql知识分享(包含安装卸载)(一)
  • Vue + Element 实现按钮指定间隔时间点击
  • [MTK]安卓8 ADB执行ota升级
  • 文心一言 VS 讯飞星火 VS chatgpt (151)-- 算法导论12.2 7题
  • JPA(Java Persistence API)是什么
  • 指针(四)
  • 2.面向对象编程风格
  • 【NLP】如何管理大型语言模型 (LLM)
  • 常规外网打点拿下域控
  • 鸿蒙一出,android开发处境再受重创
  • Kubernetes权威指南:从Docker到Kubernetes实践全接触(第5版)读书笔记 目录
  • screen 常用命令
  • 小程序商城制作一个需要多少钱
  • C++指针作业
  • RT-DETR手把手教程:NEU-DET钢材表面缺陷检测任务 | 不同网络位置加入EMA注意力进行魔改
  • Python-文件详解
  • 烈酒行业分析:预计2029年将达到17628亿元
  • Qt6 QRibbon 一键美化Qt界面