ElasticSearch基础篇-安装与基本操作

news/2024/5/16 8:05:57

ElasticSearch基础篇

安装

官网

下载地址

下载完成后对文件进行解压,项目结构如下

在这里插入图片描述

  • 进入bin目录点击elasticsearch.bat启动服务

  • 9300 端口为 Elasticsearch 集群间组件的通信端口, 9200 端口为浏览器访问的 http协议 RESTful 端口

  • 打开浏览器,输入地址: http://localhost:9200,返回结果如下

    {"name" : "暗影精灵8","cluster_name" : "elasticsearch","cluster_uuid" : "9oaD9__3R_6WxskWlWe4iA","version" : {"number" : "7.8.0","build_flavor" : "default","build_type" : "zip","build_hash" : "757314695644ea9a1dc2fecd26d1a43856725e65","build_date" : "2020-06-14T19:35:50.234439Z","build_snapshot" : false,"lucene_version" : "8.5.1","minimum_wire_compatibility_version" : "6.8.0","minimum_index_compatibility_version" : "6.0.0-beta1"},"tagline" : "You Know, for Search"
    }
    
倒排索引

什么是倒排索引?

倒排索引(英语:Inverted index),也常被称为反向索引、置入档案或反向档案,是一种索引方法,被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射。它是文档检索系统中最常用的数据结构。通过倒排索引,可以根据单词快速获取包含这个单词的文档列表。倒排索引主要由两个部分组成:“单词词典”和“倒排文件”

正排索引

idcontent
1001my name is zhang san
1002my name is li si
  • 对id创建索引,通过id查询对应的内容,如果通过id查询匹配关键字效率极低

倒排索引

keywordid
name1001,1002
zhang1001
  • 根据关键字查询对应的id

简单理解:正排索引是根据存储位置获取对应的内容,倒排索引是通过对应的内容获取存储位置

MySQL与ES结构关系

在这里插入图片描述

ES 里的 Index 可以看做一个库,而 Types 相当于表, Documents 则相当于表的行。这里 Types 的概念已经被逐渐弱化, Elasticsearch 6.X 中,一个 index 下已经只能包含一个type, Elasticsearch 7.X 中, Type 的概念已经被删除了

基本操作
创建索引
PUT http://localhost:9200/index_name

创建成功

{"acknowledged": true,"shards_acknowledged": true,"index": "shopping"
}

创建失败:索引已存在

{"error": {"root_cause": [{"type": "resource_already_exists_exception","reason": "index [shopping/8ra6Z1w3RiudhIMMlYkkNw] already exists","index_uuid": "8ra6Z1w3RiudhIMMlYkkNw","index": "shopping"}],"type": "resource_already_exists_exception","reason": "index [shopping/8ra6Z1w3RiudhIMMlYkkNw] already exists","index_uuid": "8ra6Z1w3RiudhIMMlYkkNw","index": "shopping"},"status": 400
}
查询索引
GET http://localhost:9200/shopping

响应结果

{"shopping": {"aliases": {},"mappings": {},"settings": {"index": {"creation_date": "1690355410054","number_of_shards": "1","number_of_replicas": "1","uuid": "8ra6Z1w3RiudhIMMlYkkNw","version": {"created": "7080099"},"provided_name": "shopping"}}}
}
查询所有索引
GET http://localhost:9200/_cat/indices?v

响应结果

health status index    uuid                   pri rep docs.count docs.deleted store.size pri.store.size
yellow open   shopping 8ra6Z1w3RiudhIMMlYkkNw   1   1          0            0       208b           208b
删除索引
DELETE http://localhost:9200/shopping

响应结果

{"acknowledged": true
}
创建文档
POST http://127.0.0.1:9200/shopping/_docbody type:json{"title":"小米手机","category":"小米","images":"http://www.gulixueyuan.com/xm.jpg","price":3999.00
}

响应结果

{"_index": "shopping","_type": "_doc","_id": "44MZkYkBpGe0S7oK7CQ2","_version": 1,"result": "created","_shards": {"total": 2,"successful": 1,"failed": 0},"_seq_no": 0,"_primary_term": 1
}
  • _id:每次创建会生成唯一的id标识符,如果需要指定id可以使用如下接口
http://127.0.0.1:9200/shopping/_doc/1001
主键查询

通过指定id查询

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

响应结果

{"_index": "shopping","_type": "_doc","_id": "1001","_version": 1,"_seq_no": 1,"_primary_term": 1,"found": true,"_source": {"title": "小米手机","category": "小米","images": "http://www.gulixueyuan.com/xm.jpg","price": 3999.00}
}
全查询
GET http://127.0.0.1:9200/shopping/_search

响应结果

{"took": 122,"timed_out": false,"_shards": {"total": 1,"successful": 1,"skipped": 0,"failed": 0},"hits": {"total": {"value": 2,"relation": "eq"},"max_score": 1.0,"hits": [{"_index": "shopping","_type": "_doc","_id": "44MZkYkBpGe0S7oK7CQ2","_score": 1.0,"_source": {"title": "小米手机","category": "小米","images": "http://www.gulixueyuan.com/xm.jpg","price": 3999.00}},{"_index": "shopping","_type": "_doc","_id": "1001","_score": 1.0,"_source": {"title": "小米手机","category": "小米","images": "http://www.gulixueyuan.com/xm.jpg","price": 3999.00}}]}
}
全量修改
PUT http://127.0.0.1:9200/shopping/_doc/1001body type:json
{"title":"华为手机","category":"华为","images":"http://www.gulixueyuan.com/hw.jpg","price":1999.00
}

响应结果

{"_index": "shopping","_type": "_doc","_id": "1001","_version": 2,"result": "updated","_shards": {"total": 2,"successful": 1,"failed": 0},"_seq_no": 2,"_primary_term": 1
}
局部修改
POST http://127.0.0.1:9200/shopping/_update/1001body type:json
{"doc":{"title":"苹果手机"}
}

响应结果

{"_index": "shopping","_type": "_doc","_id": "1001","_version": 3,"result": "updated","_shards": {"total": 2,"successful": 1,"failed": 0},"_seq_no": 3,"_primary_term": 1
}
删除文档
DELETE http://127.0.0.1:9200/shopping/_doc/1001

响应结果

{"_index": "shopping","_type": "_doc","_id": "1001","_version": 4,"result": "deleted","_shards": {"total": 2,"successful": 1,"failed": 0},"_seq_no": 4,"_primary_term": 1
}

http://www.mrgr.cn/p/55484785

相关文章

掌握文件重命名快捷键,使用替换功能轻松删除文件名中的符号!

您是否经常面对繁琐的文件重命名工作?是时候掌握一些文件管理的小技巧,让您的工作更加高效便捷了!现在,我们向您介绍一种简单的方法,通过文件重命名快捷键和替换功能,轻松删除文件名中的符号! …

发点实用的快捷键(mac

切换输入法:ctrlspace /ctrloptionspace(更快捷 切换网页: shifttab 切换应用界面:alttab 关闭页面:altw 搜索:altspace 展示mac隐藏文件: Commangshift . (点) 以下是一些浏览器快捷键&am…

C++继承(2)——赋值转换、隐藏特性以及作用域

目录 一.子类和父类对象的赋值转换 子类对象赋值父类对象的另外两种方式: 总结: 二.父类与子类的作用域 1. 在继承体系中基类和派生类都有独立的作用域。 例: 2.作用域练习 练习1: 解决方法: 一.子类和父类对象的赋值转换 …

【Golang 接口自动化03】 解析接口返回XML

目录 解析接口返回数据 定义结构体 解析函数: 测试 优化 资料获取方法 上一篇我们学习了怎么发送各种数据类型的http请求,这一篇我们来介绍怎么来解析接口返回的XML的数据。 解析接口返回数据 定义结构体 假设我们现在有一个接口返回的数据resp如…

【模型预测控制MPC】使用离散、连续、线性或非线性模型对预测控制进行建模(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

(树) 剑指 Offer 27. 二叉树的镜像 ——【Leetcode每日一题】

❓剑指 Offer 27. 二叉树的镜像 难度:简单 请完成一个函数,输入一个二叉树,该函数输出它的镜像。 例如输入: 4/ \2 7/ \ / \1 3 6 9镜像输出: 4/ \7 2/ \ / \9 6 3 1示例 1: 输…

【Ajax】笔记-原生jsonp跨域请求案例

原生jsonp跨域请求 输入框&#xff1a;输入后&#xff0c;鼠标移开向服务端发送请求&#xff0c;返回用户不存在(直接返回不存在&#xff0c;不做判断) JS <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><me…

8.docker仓库

文章目录 Docker仓库本地私有仓库Docker HarborDocker harbor部署访问页面创建用户下载私有仓库镜像harbor同步 Docker仓库 本地私有仓库 ##先下载 registry 镜像docker pull registry##修改配置文件&#xff0c;在 daemon.json 文件中添加私有镜像仓库地址vim /etc/dock…

Tensorflow benchmark 实操指南

环境搭建篇见环境搭建-CentOS7下Nvidia Docker容器基于TensorFlow1.15测试GPU_东方狱兔的博客-CSDN博客 1. 下载Benchmarks源码 从 TensorFlow 的 Github 仓库上下载 TensorFlow Benchmarks&#xff0c;可以通过以下命令来下载 https://github.com/tensorflow/benchmarks 我…

[containerd] 在Windows上使用IDEA远程调试containerd, ctr, containerd-shim

文章目录 1. containerd安装2. 源码编译3. 验证编译的二进制文件是否含有调试需要的信息3.1. objdump工具验证3.2. file工具验证3.3. dlv工具验证 4. debug 1. containerd安装 [Ubuntu 22.04] 安装containerd 2. 源码编译 主要步骤如下&#xff1a; 1、从github下载containe…

【雕爷学编程】MicroPython动手做(10)——零基础学MaixPy之神经网络KPU2

KPU的基础架构 让我们回顾下经典神经网络的基础运算操作&#xff1a; 卷积&#xff08;Convolution&#xff09;:1x1卷积&#xff0c;3x3卷积&#xff0c;5x5及更高的卷积 批归一化&#xff08;Batch Normalization&#xff09; 激活&#xff08;Activate&#xff09; 池化&…

使用 OpenCV 进行图像模糊度检测(拉普拉斯方差方法)

写在前面 工作中遇到&#xff0c;简单整理人脸识别中&#xff0c;对于模糊程度较高的图像数据&#xff0c;识别率低&#xff0c;错误率高。虽然使用 AdaFace 模型&#xff0c;对低质量人脸表现尤为突出。但是还是需要对 模糊程度高的图像进行丢弃处理当前通过阈值分类&#xff…

达梦DM数据库目录结构介绍

数据库安装目录 下图展示为 DM8 数据库目录。 /dm8/bin 目录存放 DM 数据库的可执行文件&#xff0c;例如 disql 命令、dminit 命令、dmrman 工具等。 /dm8/desktop 存放 DM 数据库各个工具的桌面图标。 /dm8/doc 存放 DM 数据库用户手册。 /dm8/drivers 存放连接 DM 数据库的…

【论文笔记】神经网络压缩调研

神经网络压缩调研 背景现有的深度模型压缩方法NetWork Prunning 网络剪枝设计结构化矩阵知识蒸馏权值共享Parameter Quantization&#xff08;参数量化&#xff09;量化和二进制化伪量化Architecture Design&#xff08;Depth Separable Convolution&#xff09;分解卷积 背景 …

Baumer工业相机堡盟工业相机如何通过BGAPI SDK获取相机当前实时帧率(C++)

Baumer工业相机堡盟工业相机如何通过BGAPISDK里函数来计算相机的实时帧率&#xff08;C&#xff09; Baumer工业相机Baumer工业相机的帧率的技术背景Baumer工业相机的帧率获取方式CameraExplorer如何查看相机帧率信息在BGAPI SDK里通过函数获取相机帧率 Baumer工业相机通过BGAP…

算法通关村第三关——不简单的数组增删改查

线性表基础 线性表概念 线性表就是具有相同特征数据元素的一个有限序列&#xff0c;其中包含元素的个数称为线性表的长度 线性表类型 从不同的角度看&#xff0c;线性表有不同的分类 语言实现角度 顺序表有两种实现方式 一体式 分离式 一体式结构 一体式&#xff1a;存储信息…

Vue3通透教程【十六】TS编译配置

文章目录 &#x1f31f; 写在前面&#x1f31f; 初始化配置文件⭐ target⭐ module⭐ lib⭐ types/node⭐ include⭐ outDir&#x1f31f; 写在最后 &#x1f31f; 写在前面 专栏介绍&#xff1a; 凉哥作为 Vue 的忠实 粉丝输出过大量的 Vue 文章&#xff0c;应粉丝要求开始更…

ARM将常数加载到寄存器方法之LDR伪指令

一、是什么&#xff1f; LDR Rd,const伪指令可在单个指令中构造任何32位数字常数,使用伪指令可以生成超过MOV和MVN指令 允许范围的常数. 实现原理: (1)如果可以用MOV或MVN指令构造该常数,则汇编程序会生成适当的指令 (2)如果不能用MOV或MVN指令构造该常数,则汇编程序会执行下列…

Java maven的下载解压配置(保姆级教学)

mamen基本概念 Maven项目对象模型(POM)&#xff0c;可以通过一小段描述信息来管理项目的构建&#xff0c;报告和文档的项目管理工具软件。 Maven 除了以程序构建能力为特色之外&#xff0c;还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性&#xff0c;所以…

form-data 提交文件请求远程调用

文件请求方法 /*** 上传图文消息内的图片 获取url* 富文本内的图片** param file*/public static String uploadMediaGetUrl(File file) throws IOException {if (!file.exists()) {return null;}String responseData null;try {String url "http://localhost:8503/fil…