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

【ElasticSearch】入门了解

目录

  • 基本概念
  • ElaticSearch为什么会有如此的魅力呢?
    • 横向可扩展性
    • 分布性
    • 高可用
    • 使用简单
  • 倒排索引
    • 基本概念
    • 倒排索引搜索过程?

基本概念

①索引(Index) :类似目录 精髓:一切的设计都是为了提高搜索的性能。

②类型(Type):类似关系型数据库中的表,7.X不再支持了。

③文档(Document): 一条数据

④字段(filed):相当于数据表的字段

⑤映射(Mapping):如某个字段的数据类型,默认值,分析器,是否被索引等

⑥分片(shards):类似关系型数据库分表。

⑦副本(Replicas):复制分片叫副本,防止数据丢失,拷贝数据。

⑧分配(Allocation):将分片分配给某个节点的过程,包括分配主/副分片,这个过程由master节点完成的。

ElaticSearch为什么会有如此的魅力呢?

横向可扩展性

只需要增加一台服务器,做一点儿配置,启动一下Es进程就可以并入集群。

分布性

同一个索引分成多个分片(sharding),类似HDFS的块机制,分而治之的方式可提升处理效率。

高可用

提供复制机制,一个分片可以设置多个复制,使得某台服务器在宕机的情况下,集群仍旧可以照常运行,并会把服务器宕机丢失的数据信息复制恢复到其他可用节点上。

使用简单

只需一条命令就可以下载文件,然后很快就能搭建一个站内搜索引擎。

倒排索引

基本概念

倒排索引源于实际应用中需要根据属性的值来查找记录。这种索引表中的每一项都包含一个属性值和具有该属性值的各记录的地址。由于不是由记录来确定属性值,而是由属性值来确定记录的位置,因而成为倒排索引。

读了一遍什么玩意呀,属性值 记录的地址蒙圈了,不要着急,其实你可以拿生活中的例子来类比吗,如 北京怀柔不能确定你(属性值),而通过你(属性值)可以确定你住在北京怀柔(记录的位置)。

倒排索引搜索过程?

查询单词是否在字典中,不在,搜索结束,在,看单词在倒排列表中的指针是什么,通过倒排列表获取单词所对应文档列表,拿文档id去对应数据。

总结:通过id找对应的文章内容。

通过分词策略形成单词 文字 文章之间的映射关系。

分词器 中英文不一样

keyWord代表不能分词,需要完全匹配

text 文本可以分词

ik_max_word 细粒度拆分 如:中国人 中国 国人

ik_smart 粗粒度拆分 如:中国人

三个名词

词条:索引中最小存储和查询单元

词典:字典 是词条的集合 B+tree HashMap

倒排表:关键词出现在什么位置,出现的频率是什么,每条记录称为倒排项。

相关文章:

  • 【Mysql】2003 - Can‘t connect to MySQL server on ‘127.0.0.1‘ (61 “Connection refused“)
  • 【Reactor】总结
  • 【PostgreSql】sql优化
  • 【flyway】SpringBoot集成Flyway
  • 【java】List<string>转string
  • 【java】list根据日期倒排,日期相同按名称首字母排序
  • 【Python】python安装
  • 【Reactor】FluxCreate
  • 【Elasticsearch】文档的搜索
  • 【Kibana】mac上安装kibana详细步骤
  • 【成长之旅】告2021 迎2022
  • 【Logstash】mac上安装Logstash详细步骤
  • 【Spring Cloud】gateway详细介绍
  • 【Java】枚举值前端传5,到后台是6咋回事呢?
  • 【elasticSearch】 _cat命令详解
  • 002-读书笔记-JavaScript高级程序设计 在HTML中使用JavaScript
  • co.js - 让异步代码同步化
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • ES6 ...操作符
  • JAVA 学习IO流
  • js继承的实现方法
  • 聊聊flink的TableFactory
  • 手写双向链表LinkedList的几个常用功能
  • 推荐一个React的管理后台框架
  • 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果
  • 从如何停掉 Promise 链说起
  • (70min)字节暑假实习二面(已挂)
  • (Java数据结构)ArrayList
  • (附源码)ssm基于微信小程序的疫苗管理系统 毕业设计 092354
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (强烈推荐)移动端音视频从零到上手(上)
  • (深入.Net平台的软件系统分层开发).第一章.上机练习.20170424
  • (十五)devops持续集成开发——jenkins流水线构建策略配置及触发器的使用
  • (转载)Linux网络编程入门
  • (轉)JSON.stringify 语法实例讲解
  • *(长期更新)软考网络工程师学习笔记——Section 22 无线局域网
  • *** 2003
  • .Net Core与存储过程(一)
  • .NET 程序如何获取图片的宽高(框架自带多种方法的不同性能)
  • .net 设置默认首页
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)
  • .NET8.0 AOT 经验分享 FreeSql/FreeRedis/FreeScheduler 均已通过测试
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】
  • .NET设计模式(2):单件模式(Singleton Pattern)
  • .NET中 MVC 工厂模式浅析
  • @value 静态变量_Python彻底搞懂:变量、对象、赋值、引用、拷贝
  • [ 数据结构 - C++] AVL树原理及实现
  • [].slice.call()将类数组转化为真正的数组
  • [2024] 十大免费电脑数据恢复软件——轻松恢复电脑上已删除文件
  • [BT]BUUCTF刷题第9天(3.27)
  • [flask] flask的基本介绍、flask快速搭建项目并运行
  • [Flex][问题笔记]TextArea滚动条问题
  • [IE技巧] 让IE 以全屏模式启动
  • [js] 正则表达式
  • [Kubernetes]8. K8s使用Helm部署mysql集群(主从数据库集群)