IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> ElasticSearch入门(参照尚硅谷教程)(以elasticsearch7.8.0为例)(壹) -> 正文阅读

[大数据]ElasticSearch入门(参照尚硅谷教程)(以elasticsearch7.8.0为例)(壹)

es的本地安装

链接
提取码:77ld
下载其中的资料.zip

解压其中的elasticsearch-7.8.0-windows-x86_64.zip就可以了
解压后双击$ELASTICSEARCH_HOME/bin下的elasticsearch.bat就可以了
然后在http://localhost:9200中就可以访问

对ES发送请求

想ES发送请求需要用到postman工具,在上面的网盘中存在,直接双击运行安装即可

ES使用前需知

  1. ES是依托json来进行发送和接收数据
  2. post和[get,delete,head]是不同的,post是非密等型的请求,而另外三个是密等型的请求
  3. 非密等型是指每次请求返回的数据是不同的,而密等型则相反,下面会解释
    ES和mysql的对比
    其中Type这个概念将来会被删除

ES客户端的基本使用

索引操作

  1. 索引创建
    在postman选择post请求输入http://localhost:9200/user/_create就可以创建index为user的文档了。
    创建索引时可以传递文档,在postman中选择body,raw选择json输入
{
    "name":"小米手机",
    "sex":"小米",
    "tel":"1111",
    ”price“ : 3999.0
}

就可以创建成功
在创建索引时会返回一个id
每次创建时会返回es自己生成的随机id,因此,创建是需要用post

  1. 索引查询
    选择get,输入http://localhost:9200/user就可以查看user下的全部信息,也可以输入{http://localhost:9200/_cat/indices?v}就可以查看所有index下的信息

  2. 索引的删除
    选取delete后输出需要删除的连接,例如http://localhost:9200/user,就可以删除索引为user的所有数据

文档操作

  1. 文档的创建
    与上面索引的创建类似选择post
    传入http://localhost:9200/user/_doc/3001即可以创建id为3001的文档,注意的是需要传递一个body,json格式的数据,但是在文档的创建可以进行id的指定,例如上面指定id为3001时可以使用put请求
  2. 文档查询
    查询指定id:选择get传入http://localhost:9200/user/_doc/3001即可查询3001下的信息
    全查询:选择get传入http://localhost:9200/user/_search
  3. 全量修改
    选择put输入http://localhost:9200/user/_doc/3001,然后在body下输入json格式的数据,返回值出现updated代表更新成功
  4. 局部修改
    选择post输入http://localhost:9200/user/_update/3001,在body下输入{ "doc":{ "name":"华为手机" } }
    则在代表修改name为华为手机
  5. 条件查询
    选择get输入http://localhost:9200/user/_search?q=name:小米,凡是不推荐这种方法,因为这种情况在数据传输过程中会出现乱码或者丢失,因此推荐以下方法
    在body中传入json格式的数据
    { "query": { "match" : { "name":"小米" } } }
    参数解释
    1. query:请求体
    2. match:匹配
  6. 分页查询
    输入http://localhost:9200/user/_search,后在body下输入以下json
{
    "query": {
        "match_all" : {

        }
    },
    "from" : 2,
    "size" : 2,
    "_source" : ["name"],
    "sort":{
        "price":{
            "order":"desc"
        }
    }

就可以获取只包含name,按照价格降序的信息

参数解释:

1. from表示从第几个出发,计算公式(页码-1)*每页的个数
2. size表示每页的文档个数
3. _source表示需要显示哪些参数
4. match_all表示精准匹配,同理match表示可以进行分词匹配
5. sort表示排序,下面接的则是根据哪些字段排序
 6. order表示排序方式,desc降序,asc升序
  1. 多条件查询

输入http://localhost:9200/user/_search,在body下输入以下json格式数据

{
"query" : {
	"bool" : {
		"must": [
			{
			"match" : {
					"name" : "小米"
					}
				},
				{
					"match" : {
					"tel" : "1111"
					}
				}
			]
		}
	}
}

就可以查询到name为小米,tel为1111的数据,must’对于ES来讲就是and,or是should。

  1. 范围查询
    输入http://localhost:9200/user/_search,在body下输入以下json格式数据
{
"query" : {
	"bool" : {
		"must": [
			{
			"match" : {
					"name" : "小米"
					}
				},
				{
					"match" : {
					"tel" : "1111"
					}
				}
			],
			"filter" : {
				"range" : {
					"price" : {
						"gt" : 3000
					}
				}
			}
		}
	}
}

代表选取name为小米,tel为1111,且price>3000的数据
除了gt还有以下的符号表示

EQ 就是 EQUAL等于 
NE 就是 NOT EQUAL不等于 
GT 就是 GREATER THAN大于  
LT 就是 LESS THAN小于 
GE 就是 GREATER THAN OR EQUAL 大于等于 
LE 就是 LESS THAN OR EQUAL 小于等于
  1. 全文检索
    与上面条件检索一致,这里只做补充
    匹配情况有以下两种分类;match,match_phrase,两种区别:match表示可以分词匹配,match_all代表必须精准匹配,即必须完全一致。match时将"name" : "小米"改成"name" : "米"或者"name" : "小"都可以查询到name为小米的数据,也可以改为"name" : "小华",会查询到name为小米和华为的数据,因为match是分词查询,match_phrase就不会出现这种情况。
  2. 高亮显示
    输入http://localhost:9200/user/_search,选择get
    传入body
{
    "query": {
        "match" : {
            "name":"小米"
        }
    },
    {
    "highlight" : {
    			"fields" : {
    					"name" : {}
    				}
    		}
    	}
}

就可以对查询结果的name进行高亮显示
参数解释
1. highlight:高亮显示标签
2. fields:选取元素
3. name:查询后要高亮的标签

  1. 聚合查询
    输入http://localhost:9200/user/_search,选择get
    传入body
{
	"aggs" : {
		"price_group" : {
			"term" : {
				"field" : "price"
			}
		}
	}
}

参数解释
1. aggs:聚合开始标签
2. price_group:聚合组名,自定义名字
3. term:分组模式,常见的还有avg,max,min
4. field:分组字段

  1. 映射关系
    选择put,输入http://localhost:9200/user/_mapping
    传入body
{
	"properties" : {
		"name" : {
			"type" : "text",
			"index" : "true"
		},"sex" : {
			"type" : "keyword",
			"index" : "true"
		},"tel" : {
			"type" : "keyword",
			"index" : "false"
		},"price" : {
			"type" : "text",
			"index" : "false"
		}
	}
}

参数解释

  1. name,sex,tel,price,为自定义的字段
  2. type:数据输入类型
    2.1. text:表示可以分词查询,比如name为小米,则小或者米都可以查询到
    2.2. keyword:表示精准查询,比如name为小米,则只有小米才可以查询到
  3. index:表示是否可以被索引找到
  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-11-15 15:56:05  更:2021-11-15 15:58:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 5:25:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码