Elasticsearc学习随笔(1)

使用es以来,查询相关文档和资料居然成立一件头痛的事情,无数的博客对应的es版本不一且es官网的api本身更新也快,再者官网最新的只有英文文档,对前版本的操作api历史情况记录不全,也造成了很多歧义,所以今天开始着手对es进行文档性总结,便于以后查找和订正,本次对应elasticsearch的7.6.2版本

 

一.elasticsearch基本概念

作为一款基于lucene的搜索引擎,本质上和数据库的性质是一致的,但是在原本丰富的操作下,对查询这功能进行了定向增强.这也就是es作为搜索引擎的独到和优势之处 . 按照官网的介绍标题"You know, for search (and analysis)",在大量数据下的搜索和分析是es推崇的.

再来看下它提出的五点:

  • Add a search box to an app or website   //为app和网站提供检索功能---关键词"检索"
  • Store and analyze logs, metrics, and security event data //存储和分析日志、指标和安全事件数据,--关键在于存储各种数据
  • Use machine learning to automatically model the behavior of your data in real time //使用机器学习来实时自动建模数据的行为--其实就是分析数据加应用,这个其实配合其他产品和开发才能实现
  • Automate business workflows using Elasticsearch as a storage engine //业务流存储引擎--还是存储
  • Manage, integrate, and analyze spatial information using Elasticsearch as a geographic information system (GIS) //地理信息系统的分析管理工具---这方面我确实没碰到过业务场景,不能很好的理解
  • Store and process genetic data using Elasticsearch as a bioinformatics research tool //使用es生物进行遗传和基因数据存储和处理--听起来有点模式和高端,和上条一样,没遇见过

总而言之,其实是个牛皮的数据集操作工具,检索分析功能强大

 

二.elasticsearch的基本安装

  此处省略一千字,网上各种教程,不再一一赘述,各位在安装时注意下版本就行

 

三.elasticsearch的逻辑概念

  很多文章将es的逻辑概念和数据库进行类别,这在刚开始接触时确实是快速上手的方式,用已知的事物延申的理解未知的事物,确实很块,但是也有缺点,那就是会被已知的事物限制眼界,所以现在先不类推的方式来阐述es的逻辑概念.

  几个比较基本的es概念:index(索引),document(文档),mapping(映射),type(类型)

  1.index(索引):es中的核心概念,代表一树的集合,如一个书架

  2.document(文档):一条完整的数据称之为一个文档,如一本书,里面含有书名,作者,价格和出版时间等信息,很多个文档构成一个索引

  3.mapping(映射):文档的数据结构描述,如书面的书名是字符串带分词,作者字符串不带分词,价格为浮点型等,

  4.type(类型):介于书架和书本之间的,将书架分为小说书架,文学书架,教材书架,这个概念在es的7以上版本已经取消,记得有这么东西就行,实际并不会使用

 

  根据上面的几个基本定义,我们在搭建起一个es服务后,就可以着手建立我们的数据存储结构,并存储es数据了

 

四,关于倒排索引

  网上很多关于倒排索引的概念,这里我想用一种类比的方式解释,

  假设数据库的数据,id作为索引,内容作为目的地,形成的则是  id(key)---> 一条数据(value),这样的查询解构,而es则相当于反过来,变成了一条数据做为索引,id为值的情况。真实的情况是一条数据拆解成多个key,对应了同一个id的value,形成 value(key)--->id(value)的数据解构。

  es的倒排索引,工作目的就是为了通过内容反查数据,而不是像通用数据库那样通过id正查内容(也可以反查),而且转为这种搜索定制,所有搜索效率高。

 

posted @ 2020-05-08 10:36  Boxer123  阅读(111)  评论(0)    收藏  举报