ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。
全文搜索引擎理解
1.全文搜索引擎是什么
数据总体分为两种:结构化数据和非结构化数据
结构化数据:也称作行数据,是由二维表结构来逻辑表达和实现的数据,严格地遵循数据格式与长度规范,主要通过关系型数据库进行存储和管理。指具有固定格式或有限长度的数据,如数据库,元数据等。
非结构化数据:又可称为全文数据,不定长或无固定格式,不适于由数据库二维表来表现,包括所有格式的办公文档、XML、HTML、word文档,邮件,各类报表、图片和咅频、视频信息等。
对于结构化数据一般可以通过关系数据库等进行存储和搜索。
对非结构化数据主要有两种搜索方法:顺序扫描法,全文搜索
顺序扫描:按照扫描顺序查询特定关键字。
全文搜索:将非结构化数据中的一部分信息提取出来,重新组织,使其变得有一定结构,然后对此有一定结构的数据进行搜索,从而达到搜索相对较快的目的。
这种方式就构成了全文检索的基本思路。这部分从非结构化数据中提取出的然后重新组织的信息,我们称之索引。这种方式的主要工作量在前期索引的创建,但是对于后期搜索却是快速高效的。
2.为什么使用es,不适用mysql等数据库
3.适合全文搜索引擎场景
- 搜索的数据对象是大量非机构化数据
- 文本数据量达数十万数百万等
- 支持大量基于交互式文本的查询
- 需求非常灵活的全文搜索引擎(提示搜索内容)
- 对安全事务,非文本数据操作需求相对较少的的情况
ES基础操作
ES 默认Restful风格,索引相当于一个数据库,映射(mapping)相当于表。
索引
1.创建索引
使用postman工具,put方法创建索引,返回结果如下
2.查看索引格式
使用get方式查看接口
3.删除索引
4.获取多个索引和获取所有索引
直接写多个索引名
使用_all 获取所有索引
映射
mapping 定义索引结构。mapping相当于数据库的表,keyword
1.新增mapping
查询所有索引的mapping
可直接使用_mapping 或 _all/_mapping