一、es 介绍
1、背景
在订单管理系统中,订单查询的调用量都非常大,如果直接查询数据库,那数据库的压力可想而知,而且有时需要执行一些复杂的查询,sql 并不能够友好的支持,需要查询很多张表。再比如用户手误输入的关键词错了或存在错别字,那使用 sql 是无法搜索到。所以打算使用 Elasticsearch 来承载订单查询的主要压力。
总的来说,使用 es 的几个原因如下
关系型数据库在进行模糊(%关键字%)搜索的时候,会全表扫描,查询非常慢
关系型数据库在关键字搜索时,并不支持全文分词搜索,比如用户本打算搜索:公众号-草履虫,却手误:公号-草履虫,es 可以根据分词的结果搜索出想要的结果。
在数据分析、日志分析上用到 es
2、es 基本概念
Elasticsearch 是一个分布式、RESTful 风格的搜索和数据分析引擎,适用于包括文本、数字、地理空间、结构化和非结构化数据等在内的所有类型的数据。Elasticsearch 在 Apache Lucene 的基础上开发而成,由 Elasticsearch N.V.(即现在的 Elastic)于 2010 年首次发布。
Elasticsearch 是文件存储,Elasticsearch 是面向文档型数据库,一条数据在这里就是一个文档,用 JSON 作为文档序列化的格式;