尚硅谷ES入门 笔记

安装:

1.解压安装包
2.运行bin目录下的Elasticsearch .bat文件 
3.浏览器输入http://localhost:9200  访问
	注意:9300 端口为 Elasticsearch 集群间组件的通信端口
	 9200 端口为浏览器访问的 http协议 RESTful 端口。

Elasticsearch 支持分布式,rest(缩写:资源状态转换)ful风格的搜索和分析

ES中数据发送与数据返回以json为标准格式
jason(javaScript Object Notation):特殊标记的js对象
var obj = { " "  : " " }
var objs = [ obj,obj ]  //集合

正排索引:

id 设为主键,通过id查索引信息
比如:查文章中有哪些热门词汇,就要模糊查询,比较麻烦 ,每条数据都要进行遍历
查询的大小写,时态等待都会影响查询的准确率

倒排索引:

id 保持不变,让关键字与文章的ID进行关联,
也就是通过关键字来查询主键ID,然后再关联文章内容

索引操作

先创建索引,才能访问数据
对比关系型数据库,创建索引就等同于在 Postman 中创建数据库
向 ES 服务器发 PUT 请求:http://127.0.0.1:9200/shopping

在这里插入图片描述
注:

put具有幂等性,再次发送引起线程冲突,不允许
幂等性:就是用户对于同一操作发起的一次请求或者多次请求的结果是一致的,不会因为多次点击而产生了副作用。
post:没有幂等性,两次操作可能结果不一样
get:获取索引的相关信息
delete:删除索引

http://127.0.0.1:9200/_cat/indices?v  所以整体含义就是查看当前 ES 服务器中的所有索引,就好像 MySQL 中的 show tables
-cat:查询
indice:表示索引

服务器响应结果如下:
在这里插入图片描述
在这里插入图片描述

创建:

put :http://127.0.0.1:9200/shopping/_doc/1001
只能使用put,put每一次都生成数据,所以put不是幂等性的
1001,自定义主键,默认是随机生成的
再put,中传入json字符串

查询:

get:  http://127.0.0.1:9200/shopping/_doc/1001    单条
get :http://127.0.0.1:9200/shopping/_search    全查

修改:

完全覆盖:无论发送多少次请求,结果都一样,是幂等性的,所以可以使用put
put:http://127.0.0.1:9200/shopping/_doc/1001
{
"title":"小米手机",
"category":"小米",
"images":"http://www.gulixueyuan.com/xm.jpg",
"price":3999.0
 }

局部修改:局部更新就说明,每一次的结果不一定是相同的,不具有幂等性,可以用post
post :http://127.0.0.1:9200/shopping/_update/1001

{
"doc":{
	"title":"华为手机"
}

}
删除:

delete:http://127.0.0.1:9200/shopping/_doc/1001 

条件查询&&分页查询:

条件查询:
get:http://127.0.0.1:9200/shopping/_search?q=category:小米
上面是请求路径,更方便的是请求体  在body中写入请求

get:http://127.0.0.1:9200/shopping/_search
  • 请求体:
{
	"query" : {
		"match" : {  //match:匹配查询
			"category":"小米"
		}
	}
}

//全量查询:
{
	"query" : {
		"match_all" : {
			
		}
	}
}
分页查询:
{
	"query" : {
		"match_all" : {
			
		}
	},
	"from" : 0,  //页码-1 * size
	"size" : 2,
	"_source" : ["title"] //只要title
	"sort" : {//对查询结果倒排序
		"price" : "desc"
	}
}

多条件查询&&范围查询:

must:类似and
should:类似or
{
	"query" : {
		"bool" : {
			"must" :[  //品牌是小米,并且价格为3999
				{
					"match" : {
						"category" : "小米"
					}
				},
				{
					"match" : {
						"price" : "3999"
					}
				}
			],
			"filter" : {  //过滤属性  范围查询
				"range" : {
					"price" : {
						"gt" : 5000
					}
				}
		}
	}
}

全文检索&&完全匹配&&高亮查询

使用文字的一部分也是可以查询的,
当保存文档数据时,ES会对数据文字进行分词拆解操作,将拆解后的数据保存到==倒排==索引数据当中
所以,部分文字也是可以查询的,这种方式称为全文检索,比如:“小华”可以匹配到“华为”
{
	"query" : {
		"match_phrase" : {
			"category" : "大米"  //这样match_phrase 完成 完全匹配
		}
	},
	"highlight" : { //高亮操作
		"fields" : {  //字段
			"category" : {}
		}
		
	}
	
}

在这里插入图片描述
聚合查询:

{
	"aggs" : {  //聚合操作
		"price_avg" : {  //名称,随意起名
			"avg" : {  	//平均值
				"field" : "price"	//分组字段
			}
		}
	},
	"size" : 0  //0:不查看原始数据
}

在这里插入图片描述
映射关系:

映射数据说明:
在这里插入图片描述

{
	"properties" :{
		"name":{
			"type" : "text",  //可分词
			"index" : true		//可索引查询
		},
		"sex" :{
			"type" : "keyword",  //不可分词,必须完全匹配
			"index" : true
		},
		"tel" :{
			"type" : "keyword",
			"index" : false   //没有被索引,所以不能被查询
		}
	}
}

*******************************

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值