Bootstrap

一口气看完es(上)

此系列博客分为上中下3篇:上篇是关于es的概念和对数据的增删改操作,中篇是对数据的查询、对搜索结果进行处理操作,下篇是介绍怎么在Java代码中调用和操作es。

基本概念

1、es是什么?有什么作用?

es全名是elasticsearch,是一个搜索引擎,可以帮助我们从海量数据中找到想要的内容。比如:
(1)先将商品信息存到es里,然后当搜索名称带有“苹果”的商品时,es就能将“红富士苹果”、“烟台苹果”等符合条件的商品筛选出来了。当然,mysql中使用like语句也能筛选出来,只是性能低。
(2)还可以用于搜集日志

es的官方文档:
https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-match-all-query.html

2、es能干点啥?

1、关键字的搜索和分页
2、添加过滤条件:品牌、城市、星级、价格等。

  • city(城市)、brand(品牌)、starName(星级)的精确匹配
  • price(价格)的范围过滤

3、按距离排序
显示具体的距离值

4、让指定的酒店在搜索结果中排名置顶
我们给需要置顶的酒店文档添加一个标记。然后利用function score给带有标记的文档增加权重。

5、关键词高亮

3、es的原理?

倒排索引。对文档内容分词,对词条创建索引,并记录词条所在文档的信息。查询时先根据词条查询到文档id,而后获取文档。

4、es中的一些概念

文档:一条条的JSON数据,对应数据库中的行
字段:JSON数据中的字段,对应数据库中的列
索引:相同类型的文档的集合,对应数据库中的表
映射:数据字段类型的约束等,对应数据库的表结构
在这里插入图片描述

索引库操作

1、type常见的有哪些?

字符串:text、keyword
数字:long、integer、short、byte、double、float
布尔:boolean
日期:date
对象:object

2、创建索引库和mapping

3、查看、删除索引库

get /student

//查看索引库
get /student

//删除索引库
delete /student

4、索引库和mapping一旦创建无法修改,但是可以添加新的字段

//添加成绩字段
put /student/_mapping
{
	"properties": {
		"score": {
			"type": "integer"
		}
	}
}
操作文档

1、新增数据
在这里插入图片描述

2、删除数据

DELETE /索引库名/_doc/文档id

3、修改数据
在这里插入图片描述

4、查询数据
此部分在中篇

结尾:值得一提的是,用Java代码也可以来操作es,但如果仅是对索引和文档的修改,直接使用elk即可,方便快捷

;