1.倒排索引大概是什么意思
这是一个数据库表:table
mysql 库名 | |||
table_name 表名 | |||
colunm(属性) | colunm(属性) | ||
id | context | ||
row | 1022 | java入门到入土 | |
2002 | 学java再转销售 |
先说明正排索引: 如果是查询:那么肯定是select*from table where id= 1022
这就是根据id进行查询.
那么倒排索引:
keyword | id |
java | 1022,2002 |
入门 | 1022 |
销售 | 2022 |
index (数据库名) | ||||
field (字段) | field (字段) | |||
id | context | |||
document (文档) | 1022 | java入门到入土 | ||
document (文档) | 2002 | 学java再转销售 |
elasticSearch就是先将这些数据都进行一个索引表的创建,直接就进行查询关键字,列如java,入门,这些词汇。这些词是通过elasticSearch中的一个config中的字典进行的定义的,如果字典中有,那么会产生这样的一个索引表。
这么说还是不够清楚,下面就是个之间的比对关系
es | index(索引) | type(类型)(已经取消使用) | document(文档) | fielde(字段) |
mysql | database(数据库) | table(表) | row(行) | column(列) |
2.索引使用教程
工具:mysql使用需要navicat。
es使用需要postman或者浏览器发送http请求;
这里主要演示es的使用教程:
创建单条索引
对比mysql数据库,需要创建一个表。es需要创建的是index(索引)。
可以看到acknowledged:true,意思是创建索引成功。(附加,put是具有幂等性的,如果再次进行发送,那么会产生错误,表示已经创建过了, 如果使用post,那么会直接报错,因为es不饿能够使用post请求)
查看单条索引:
出现了一堆的参数。都不认识,
查看索引详情:
删除单条索引:
3.数据操作教程
引言:mysql:数据库-》表-》数据。但是es:索引-》数据。于是有了索引index就能够操作数据。
向索引添加数据
(只能使用post,不能put。post不具有幂等性的,发送会生成一个随机的id,也可以自己设置这个文档的id)
查询索引中的单条
后面需要具体文档的id。就是主键查询,如果没有找到就会出现false
查询es索引下所有
更新全量覆盖单条
可看到文档es赋予的主键为aZB_d4wBVlYdAHcSwCK6的put覆盖successful。全量覆盖:将这个文档的数据全部进行替换。 局部覆盖:只会修改这个文档的相对应的属性字段
更新局部覆盖
只是修改了主键为ZZB9d4wBVlYdAHcSCSJ5文档的 title属性
4.重点:条件查询
条件匹配查询1
q=query ;content是一个field属性 ; “啦啦啦”是查询相关的关键字
条件匹配查询2
还有一种,通过body进行查询:
(稍微解释下:match意思是匹配查询,title就是查询的字段)
全查询:
分页查询:
有8条数据,只有2条进行展示 from :0 (从1条开始 ),size:2(查两条)
分页查询的数据太多了,只显示某一些属性的数据: 这里只显示了title的数据
分页查询想排序,sort,升序降序