在此之前,先简要了解下Elasticsearch的数据格式。
数据格式
Elasticsearch是面向文档型数据库,一条数据就是一个文档。
为了方便理解,我们对比下关系型数据库(MYSQL)来看一下:
简单理解:正排索引&倒排索引
正排索引
直观的举个栗子:
id content
——————————————————
1001 My name is XiaoHong
1002 My name is XiaoMing
这里,id为主键,通过主键索引可以快速定位到所要查询的content。
那么问题来了,当我们需要查找content中的某个热点词汇,通过遍历,对每条数据进行模糊查询,这样的效率显然会很低下,甚至还会涉及到大小写的问题。
这种情况下,该如何呢?
==>倒排索引
倒排索引
同样,直观的举个栗子:
keyword id
——————————————————
Xiao 1001,1002
Ming 1002
这里, 通过keyword(关键字)来查询主键ID,然后在通过主键ID,关联content(文章内容)。
索引操作
创建索引
对比关系型数据库,创建索引就等同于创建数据库。
打开postman,创建一个PUT请求。(注:是否启动Elasticsearch)
点击send,查看结果:
查询索引
查询单个
打开postman,创建一个GET请求。
点击send,查看结果:
这里,我们根据索引名称,查询了ES中指定的某一个索引。
那么,如需查询ES中所有的存在的索引,该如何呢?
查询多个
打开postman,创建一个GET请求。
点击send,查看结果:
删除索引
打开postman,创建一个DELETE请求。
点击send,查看结果: