ElasticSearch基础知识汇总

文章目录

  • 前言
  • 一、认识ElasticSearch
    • 1.正向索引和倒排索引
    • 2. MySql与ElasticSearc
    • 3.IK分词器
  • 二、ES索引库操作
    • 1.mapping映射属性
    • 2.索引库的CRUD
  • 三、ES文档库操作


前言

Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎基于RESTful web接口。Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。Elasticsearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene的搜索服务器。


一、认识ElasticSearch

1.正向索引和倒排索引

正向索引是最传统的,根据id索引的方式。但根据词条查询时,必须先逐条获取每个文档,然后判断文档中是否包含所需要的词条,是根据文档找词条的过程。
正排索引简单来说就是遍历全表,对逐条信息做模糊查询
在这里插入图片描述
倒排索引则相反,是先找到用户要搜索的词条,根据词条得到保护词条的文档的id,然后根据id获取文档。是根据词条找文档的过程。
倒排索引是ES的独有的特色,简单来说将要所搜的数据利用分词器拆分成一个个的词条,将词条和文档id组成一个文档:
在这里插入图片描述
倒排索引查询流程:
在这里插入图片描述

2. MySql与ElasticSearc

Mysql:擅长事务类型操作,可以确保数据的安全和一致性
Elasticsearch:擅长海量数据的搜索、分析、计算
在这里插入图片描述
Mysql与ElasticSearch的概念对比:
在这里插入图片描述

3.IK分词器

分词器的作用是创建倒排索引时对文档分词,当用户搜索时,对输入的内容分词;

IK分词器的两种模式:

  • ik_smart:智能切分,粗粒度;
  • ik_max_word:最细切分,细粒度;

二、ES索引库操作

索引库就类似数据库表,mapping映射就类似表的结构。我们要向es中存储数据,必须先创建“库”和“表”。

1.mapping映射属性

mapping是对索引库中文档的约束,常见的mapping属性包括:

  • type:字段数据类型,常见的简单类型有:字符串:text(可分词的文本)、keyword(精确值,例如:品牌、国家、ip地址);
  • index:是否创建索引,默认为true;
  • analyzer:使用哪种分词器;
  • properties:该字段的子字段。

2.索引库的CRUD

测试工具:PostMan
2.1创建索引库:PUT /索引库名
在这里插入图片描述
2.2查询索引库:GET /索引库名在这里插入图片描述
2.3修改索引库(添加新字段):PUT /索引库名/_mapping
倒排索引结构虽然不复杂,但是一旦数据结构改变(比如改变了分词器),就需要重新创建倒排索引,这简直是灾难。因此索引库一旦创建,无法修改mapping。
虽然无法修改mapping中已有的字段,但是却允许添加新的字段到mapping中,因为不会对倒排索引产生影响。
在这里插入图片描述

2.4删除索引库:DELETE /索引库名
在这里插入图片描述

三、ES文档库操作

3.1新增文档:POST /{索引库名}/_doc/文档id
新增文档内容与索引库内容保持一致
在这里插入图片描述

3.2查询文档:GET /{索引库名称}/_doc/{id}
在这里插入图片描述
3.3删除文档:DELETE /{索引库名}/_doc/id值
在这里插入图片描述
3.4全局查询:GET/{索引库名}/_search
在这里插入图片描述
3.5修改文档:
修改有两种方式:
全量修改:直接覆盖原来的文档PUT /{索引库名}/_doc/文档id
在这里插入图片描述

增量修改:修改文档中的部分字段POST /{索引库名}/_update/文档id
在这里插入图片描述


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/57694.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3.RabbitMQ 架构以及 通信方式

一、RabbitMQ的架构 RabbitMQ的架构可以查看官方地址 可以看出RabbitMQ中主要分为三个角色: Publisher:消息的发布者,将消息发布到RabbitMQ中的ExchangeRabbitMQ服务:Exchange接收Publisher的消息,并且根据Routes策…

抖店商品怎么让达人带货?说下找达人技巧和寄样后的操作,可收藏

我是王路飞。 找达人带货的玩法是公认出单快、易爆单、长久稳定的出单方式。 虽然新手可能感觉要给达人佣金,自己利润会降低,但是这种玩法可以让你快速入门,且能长久玩下去。 尤其是现在抖音直播间的产品全都是来自抖音小店的,…

YOLO目标检测——花蕊分类检测数据集下载分享

花蕊分类检测数据集共同7300图片,103类别,分别放在103个文件夹中,可应用于:植物学研究、花卉市场和园艺业、智能农业、视觉搜索引擎、等等 数据集点击下载:YOLO花蕊分类检测数据集7300图片102种类别.rar

多旋翼飞控底层算法开发系列实验 | 多旋翼动力系统设计实验3

多旋翼动力系统设计实验3 01/多旋翼动力系统简介​​​​​​​ 多旋翼无人机的动力系统通常包括螺旋桨、电机、电调以及电池。动力系统是多旋翼最重要的组成部分,它决定了多旋翼的主要性能,如悬停时间、载重能力、飞行速度和飞行距离等。动力系统的部件…

Elasticsearch 集成--Flink 框架集成

一、Flink 框架介绍 Apache Spark 是一种基于内存的快速、通用、可扩展的大数据分析计算引擎。 Apache Spark 掀开了内存计算的先河,以内存作为赌注,赢得了内存计算的飞速发展。 但是在其火热的同时,开发人员发现,在 Spark …

EasyExcel自定义字段对象转换器支持转换实体和集合实体

文章目录 1. 实现ObjectConverter2. 使用3. 测试3.1 导出excel3.2 导入excel 1. 实现ObjectConverter package com.tophant.cloud.common.excel.converters;import cn.hutool.json.JSONUtil; import com.alibaba.excel.converters.Converter; import com.alibaba.excel.enums.…

设计模式—原型模式(Prototype)

目录 一、什么是原型模式? 二、原型模式具有什么优缺点吗? 三、有什么缺点? 四、什么时候用原型模式? 五、代码展示 ①、简历代码初步实现 ②、原型模式 ③、简历的原型实现 ④、深复制 ⑤、浅复制 一、什么是原型模式&…

c++之指针

总结性质 我们如何在一个函数中获取数组的长度: 我们都知道,在main函数中我们获得数组的长度只需要使用sizeof(a)/sizeof(a【0】)即可获得,但当我们把一个数组传入到方法时,c默认把…

重生c++系列之类与对象(中篇)

好的继上期,我们今天带来c类与对象系列的继续学习。 类的6个默认成员函数 如果一个类中什么成员都没有,简称为空类。 空类中真的什么都没有吗?并不是,任何类在什么都不写时,编译器会自动生成以下6个默认成员 函数。 …

pyqt5-快捷键QShortcut

import sys from PyQt5.QtWidgets import * from PyQt5.QtCore import * from PyQt5.QtGui import *""" 下面示例揭示了,当关键字绑定的控件出现的时候,快捷键才管用, 绑定的控件没有出现的时候快捷键无效 """…

vscode使用anaconda自带的python环境在终端运行时报错

目录 具体报错内容官方翻译报错讲人话解决方法 具体报错内容 CommandNotFoundError: Your shell has not been properly configured to use conda activate. If your shell is Bash or a Bourne variant, enable conda for the current user with$ echo ". E:\Anaconda/e…

无涯教程-Android - Activity

Activity代表具有用户界面的单个屏幕,就像Java的窗口或框架一样。Android Activity 是ContextThemeWrapper类的子类。 如果您使用过C,C或Java编程语言,那么您一定已经看到您的程序从 main()函数开始。与之非常相似,Android系统以 …

MySQL日期格式及日期函数实践

目录 日期格式 日期函数 CURDATE()和CURRENT_DATE()CURTIME()和CURRENT_TIME()NOW()和CURRENT_TIMESTAMP()DATE_FORMAT()DATE_ADD()和DATE_SUB()DATEDIFF()DATE()DAYNAME()和MONTHNAME() 1. 日期格式 在MySQL中,日期可以使用多种格式进行存储和表示。常见的日期格式…

m3u8 blob视频免费下载

F12点开找到这个视频url最后是.m3u8结尾 http://blog.luckly-mjw.cn/tool-show/m3u8-downloader/index.html 在上边的网址转Mp4下载即可

Flutter可执行屏幕动画的AnimateView

1.让动画使用起来就像使用widget。 2.可自定义动画。 3.内置平移动画。 演示: 代码: import dart:math; import package:flutter/cupertino.dart;class AnimateView extends StatefulWidget {///子Widgetfinal Widget child;///动画自定义final IAnimate? anim…

HTML-常见标签、HTML5新特性

HTML 软件架构 1.C/S架构 (1) C/S架构即Client/Server(客户机/服务器)结构。 (2) C/S 架构特点 ​ C/S结构在技术上很成熟,它的主要特点是交互性强、具有安全的存取模式、网络通信量低、响应速度快、利于处理大量数据。但是该结构的程序是…

ssm会议管理系统源码和论文

ssm会议管理系统源码和论文087 开发工具:idea 数据库mysql5.7 数据库链接工具:navcat,小海豚等 技术:ssm 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳&…

玩转 PI 系列-看起来像服务器的 ARM 开发板矩阵-Firefly Cluster Server

前言 基于我个人的工作内容和兴趣,想要在家里搞一套服务器集群,用于容器/K8s 等方案的测试验证。 考虑过使用二手服务器,比如 Dell R730, 还搞了一套配置清单,如下: Dell R7303.5 尺寸规格硬盘CPU: 2686v4*2 内存&a…

深入浅出SSD:固态存储核心技术、原理与实战(文末赠书)

名字:阿玥的小东东 学习:Python、C/C 主页链接:阿玥的小东东的博客_CSDN博客-python&&c高级知识,过年必备,C/C知识讲解领域博主 目录 内容简介 作者简介 使用Python做一个计算器 本期赠书 近年来国家大力支持半导体行业&#xff0…

MySQL----索引

一、索引的概念 索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址(类似于c语言的链表通过指针指向数据记录的内存地址)。使用索引后可以不用扫描全表来定位某行的数据,而是先通过索引表找到该…