https://mp.weixin.qq.com/s/dn1n2FGwG9BNQuJUMVmo7w

感谢,透彻的讲解

整理笔记

请说出 唐诗中 包含 前  的诗句

......

其实你都会,只是想不起来,

“窗前明月光”

因为在你大脑中的 索引方式是

静夜思---床前明月光,疑是地上霜,举头望明月,低头思故乡

这就需要  倒排索引

倒排索引就是   前---窗前明月光

       前--遥望瀑布挂前川

       。。。。。。

那样就意味着 所有的文字都要 以这样的方式建立索引喽

这就是搜索引擎的原理!倒排索引

那样文件量是不是会很大呢?

索引会不会很多?如果文字量大(一篇1000字的文章),而且索引的维护量会不会很大啊

没问题,我们想办法,首先

正向压缩, 例如 前  ---静夜思

        前--望庐山瀑布

        .....

这样,就不用存每首诗的全文了。

还能不能更好呢?

如果是把静夜思 转化成key,是不是更简单。

如果是把所有的诗,搭建一个矩阵 是不是 更简单!

第二步:

建立索引前 要 先分词,然后再见索引   (那要建立多少词啊)

没关系,一篇文章里不用所有的词都建立索引吧, 想 的  是 嗯 等等 这样的词,不用建立索引了吧。

那么 引入 停用词 词库,可以把这些无关紧要的屏蔽掉了。

最后再说 ES的原理,

先有一个 叫 lucene 的库,后来又有人基于lucene进行封装,写出了elasticsearch

es将对搜索引擎的操作 全部封装成为基于restful 的 api,通过 http请求,对其进行操作。

数据量大量呢,还可以通过分布式,搭建多台服务器

怎么把数据存进去呢?

比如一首诗,有诗题、作者、朝代、字数、诗内容等字段,那么首先,我们可以建立一个名叫poems的索引,然后创建一个名叫poem的类型,类型是通过mapping来定义每个字段的类型,比如诗题、作者、朝代都是keyword类型,诗内容是text类型,而字数是integer类型,最后就是把数据组织成json格式存放进去了。

keyword 和text都是字符串类型的,区别就是   keyword 不会被分词,text要被分词。

keyword类型是不会分词的,直接根据字符串内容建立反向索引,text类型在存入elasticsearch的时候,会先分词,然后根据分词后的内容建立反向索引。

elasticsearch分布式原理

es会对数据进行切片,每一个分片会保存多个副本,为了保证分布式环境下的高可用

转载于:https://www.cnblogs.com/duoba/p/11407818.html

elasticsearch原理学习笔记相关推荐

  1. 【ElasticSearch】学习笔记(三)es的高级操作

    [ElasticSearch]学习笔记(三)es的高级操作 文章目录 [ElasticSearch]学习笔记(三)es的高级操作 1. 数据聚合 1.1 聚合总类 1.2 DSL实现聚合 1.2.1 ...

  2. MOOC人工智能原理学习笔记1

    人工智能原理学习笔记1 The Foundations of AI: Philosophy Mathematics Economics Neuroscience Psychology Computer ...

  3. 自控原理学习笔记-反馈控制系统的动态模型(4)-频率特性函数Nyquist图及Bode图

    自控原理学习笔记 自控原理学习笔记专栏 文章目录 1.频率特性函数 1.1 图形表示方法: 1.2 零极点位置和暂态增益图 1.2.1 复轨迹曲线 1.2.3 例子 1.3 计算系统响应 2.开环频率 ...

  4. 自控原理学习笔记-系统稳定性分析(2)-环路分析及Nyquist-Bode判据

    自控原理学习笔记 自控原理学习笔记专栏 文章目录 3. 环路分析 3.1环路分析基本思想: 3.2 稳定程度的性能指标(相对稳定) 3.3 环路整形 4.Nyquist判据 4.1 与幅角原理关系 4 ...

  5. Golang底层原理学习笔记(一)

    LCY~~Golang底层原理学习笔记 1 源码调试 go源代码地址:GitHub - golang/go: The Go programming language 1.1 源码编译 现在的go语言大 ...

  6. [编译原理学习笔记2-2] 程序语言的语法描述

    [编译原理学习笔记2-2] 程序语言的语法描述 文章目录 [编译原理学习笔记2-2] 程序语言的语法描述 [2.3.1] 上下文无关文法 [2.3.2] 语法分析树与二义性 [2.3.3] 形式语言鸟 ...

  7. 自控原理学习笔记-反馈控制系统的动态模型(1)

    自控原理学习笔记 1.导论 2.反馈控制系统的动态模型(1) 3.反馈控制系统的动态模型(2) 3.反馈控制系统的动态模型(3) 4.反馈控制系统的动态模型(4) 5.反馈控制系统的动态模型(5) 文 ...

  8. Spring5底层原理 学习笔记(二)AOP篇

    文章目录 AOP实现之ajc编译器 AOP实现之agent类加载 AOP实现之动态代理 jdk动态代理 演示 模拟实现动态代理 动态生成代理类需要使用到asm的api,这里就不展开了 Jdk对于反射调 ...

  9. 编译原理学习笔记20——符号表

    编译原理学习笔记20--符号表 20.1 符号表的组织与操作 20.2 符号表的内容 20.3 利用符号表分析名字的作用域 20.1 符号表的组织与操作 符号表 符号表的作用与组织 符号表的整理和查找 ...

最新文章

  1. php趣味小程序,php常用小程序
  2. Cocos2d-x 常见宏
  3. TLS/SSL握手过程
  4. 找不到问题的核心,你永远解决不了问题。
  5. Java知多少(28)super关键字
  6. linux的 dev vdal,RAZVOJ DELA NA DALJAVO V SLOVENIJI
  7. 实现连麦_微信重磅更新,视频号直播连麦打赏美颜上线,新增巨大流量入口
  8. mysql重复上一行的快捷_MySql三种避免重复插入数据的方法
  9. 什么是 CD 管道?一文告诉你如何借助 Kubernetes、Ansible 和 Jenkins 创建 CD 管道!...
  10. 地址null一个简单的第三人称汽车驾驶系统
  11. PyQt5系列(三)Python3.x AttributeError: module 'string' has no attribute 'maketrans'错误解决
  12. Python爬虫爬取个人主页信息(拖拽验证码验证)+Linux部署
  13. 【复杂网络】网络科学导论学习笔记-第五章节点重要性与相似性
  14. FPGA数字信号处理之乘法器
  15. PXE系列之一:PXE环境搭建
  16. 设置SecureCRT来正确显示彩色
  17. opencv学习-霍夫变换-圆检测
  18. NodeJS教程笔记
  19. 论文阅读笔记《Sim-to-real learning for bipedal locomotion under unsensed dynamic loads》
  20. 微信没有备份怎么恢复聊天记录?还能恢复吗?

热门文章

  1. c# mysql 触发器 实时,C#-.Net SqlDataAdapter和SQL Server中的触发器
  2. android应用内存分析,Android应用程序内存分析-Memory Analysis for Android Applications
  3. composer update报错: The https://packagist.phpcomposer.com/p/xxx file could not be downloaded
  4. php程序员面试题(持续补充,偏中级面试题)
  5. 【以太坊】在测试网络上发布智能合约
  6. laravel框架的基础学习路线(不带composer的)
  7. 【Java Web开发指南】线程安全和单线程
  8. 【Java Web开发指南】Mybatis一对多关联映射
  9. 【2021年度训练联盟热身训练赛第二场】Soccer Standings(python)
  10. Java中的异常全面讲解