丹阳火车站对面规划,新网站多久被百度收录,漫画门户网站怎么做的,想学做网站学什么编程语言分布式搜索引擎-elasticsearch基础
1、什么是elasticsearch#xff1f; elasticsearch是一款非常强大的开源搜索引擎#xff0c;可以帮助我们从海量数据中快速找到需要的内容。 elasticsearch结合kibana、Logstash、Beats#xff0c;也就是elastic stack#xff08;ELK elasticsearch是一款非常强大的开源搜索引擎可以帮助我们从海量数据中快速找到需要的内容。 elasticsearch结合kibana、Logstash、Beats也就是elastic stackELK。被广泛应用在日志数据分析、实时监控等领域。 elasticsearch是elastic stack的核心负责存储、搜索、分析数据。
Lucene
Lucene是一个Java语言的搜索引擎类库是Apache公司的顶级项目由DougCutting于1999年研发。官网地址https://lucene.apache.org/ 。
Lucene的优势 易扩展 高性能基于倒排索引
Lucene的缺点 只限于Java语言开发 学习曲线陡峭 不支持水平扩展
elasticsearch
基于Lucene开发也就是elasticsearch的底层实现
官网地址: https://www.elastic.co/cn/
相比与luceneelasticsearch具备下列优势 支持分布式可水平扩展 提供Restful接口可被任何语言调用
为什么学习elasticsearch
搜索引擎技术排名 Elasticsearch开源的分布式搜索引擎 Splunk商业项目 SolrApache的开源搜索引擎
2、正向索引和倒排索引
传统数据库如MySQL采用正向索引所以相对比之后给出的elasticsearch是倒排索引。
正向索引图示 倒排索引 文档document每条数据就是一个文档 词条term文档按照语义分成的词语
elasticsearch会新建一张表来记录根据语义划分的词条然后检索词条然后查询文档。 搜索流程 3、文档document elasticsearch是面向文档存储的可以是数据库中的一条商品数据一个订单信息。 文档数据会被序列化为json格式后存储在elasticsearch中。
4、索引index
索引index相同类型的文档的集合相同结构如字段
如下图 5、与Mysql对比
MySQLElasticsearch说明TableIndex索引(index)就是文档的集合类似数据库的表(table)RowDocument文档Document就是一条条的数据类似数据库中的行Row文档都是JSON格式ColumnField字段Field就是JSON文档中的字段类似数据库中的列ColumnSchemaMappingMapping映射是索引中文档的约束例如字段类型约束。类似数据库的表结构SchemaSQLDSLDSL是elasticsearch提供的JSON风格的请求语句用来操作elasticsearch实现CRUD
6、技术架构
Mysql擅长事务类型操作可以确保数据的安全和一致性
Elasticsearch擅长海量数据的搜索、分析、计算
图解