Es图形化软件使用之ElasticSearch-head、Kibana,Elasticsearch之-倒排索引操作、映射管理、文档增删改查
今日内容概要
- ElasticSearch之-ElasticSearch-head
- ElasticSearch之-安装Kibana
- Elasticsearch之-倒排索引
- Elasticsearch之-索引操作
- Elasticsearch之-映射管理
- Elasticsearch的文档增删查改(CURD)
内容详细
1、ElasticSearch之-ElasticSearch-head
# 本质都是 c s 架构的软件
# es:web服务端封装了一些restful接口 --b s架构
-docker
# mysql,redis---》自定制的 tcp 协议 --b s架构
# 服务端装好了
# 装客户端
-浏览器--->只能发get请求
-postman
-ElasticSearch-head 第三方用nodejs写的的客户端
-Kibana 官方提供的
# head的安装
# 地址:https://github.com/mobz/elasticsearch-head,可以用git下载,或者下载zip
# 解压后切换到目录下
cd elasticsearch-head-master
# 通过npm安装依赖
npm install
# 启动
npm run start
#在浏览器里打开
http://localhost:9100/
# 使用ElasticSearch-head连接服务端
-es是一个web后端
-ElasticSearch-head在跑在一个端口上,会有跨域问题
-解决跨域问题---》es的配置文件中加入允许跨域
# 跨域的配置---》es 的 config目录下的 elasticsearch.yml 添加下面两句:
http.cors.enabled: true
http.cors.allow-origin: "*"
2、ElasticSearch之-安装Kibana
# 可视化客户端---》在浏览器中访问
# 重点:
-es版本需要跟Kibana完全一一对应
# 使用步骤
-官方下载,解压
https://www.elastic.co/cn/downloads/past-releases/kibana-7-5-0
-配置Kibana---》指定连接的es服务端是什么
E:\es\kibana-7.5.0-windows-x86_64\config\kibana.yml:
server.port: 5601
server.host: "127.0.0.1"
server.name: lqz
elasticsearch.hosts: ["http://localhost:9200/"]
-启动即可
cd到 安装路径的 bin路径 启动: ./kibana
# 会在es中创建一些索引,我们不需要管,也不要删掉
# head 用来看es的数据
# kibana 增删查改数据
3、Elasticsearch之-倒排索引
# 面试es重点:倒排索引 keywords和text区别
keyword不分词,直接建索引
text要分词,再建索引
# 倒排索引:通过关键字建立索引查询文档,存的时候对关键字建立索引
文章id---》文章内容 ---》正向索引
关键词1
关键词2 ---》文章内容1,文章内容2---》倒排索引
关键词3
# 总结
- 反向索引又叫倒排索引,是根据文章内容中的关键字建立索引
- 搜索引擎原理就是建立反向索引
- Elasticsearch 在 Lucene 的基础上进行封装,实现了分布式搜索引擎
- Elasticsearch 中的索引、类型和文档的概念比较重要,类似于 MySQL 中的数据库、表和行
- Elasticsearch 也是 Master-slave 架构,也实现了数据的分片和备份
- Elasticsearch 一个典型应用就是 ELK 日志分析系统
4、Elasticsearch之-索引操作(增删改查)
# 索引对等 mysql的数据库
### 新增索引 建立一个lqz索引,有5个分片,每个分片一个副本
PUT lqz
{
"settings": {
"index":{
"number_of_shards":5,
"number_of_replicas":1
}
}
}
### 查看索引
# 获取lqz2索引的配置信息
GET lqz/_settings
# 获取所有索引的配置信息
GET _all/_settings
# 同上
GET _settings
# 获取lqz和lqz2索引的配置信息
GET lqz,lqz2/_settings
### 修改索引 (一般不改)
PUT lqz/_settings
{
"number_of_replicas": 2
}
### 删除索引
DELETE lqz
5、Elasticsearch之-映射管理
# 等同于原来 mysql中建表语句
# es 6.x之前,一个索引下可以有多个类型 --->一个库下可以有多个表
# 6.x 可以使用多个类型,但不能创建了
# es 6.x以后,一个索引下只能有一个类型 --->一个库下只能有一个表
# 在es中,索引没有,类型没有,可以直接插入文档--》插入文档后,自动创建索引和类型
# mysql必须先建库,再建表,再插入数据
##### 创建类型
# 6.x之前的建立类型
PUT books # 给books索引,建立一个类型book类型,无论索引是否存在
{
"mappings": {
"book":{
"properties":{
"title":{
"type":"text"
},
"price":{
"type":"integer"
},
"addr":{
"type":"keyword"
},
"company":{
"properties":{
"name":{"type":"text"},
"company_addr":{"type":"text"},
"employee_count":{"type":"integer"}
}
},
"publish_date":{"type":"date","format":"yyy-MM-dd"}
}
}
}
}
# 6.x以后的建立类型-->不能建多个类型了,不需要指定类型,默认叫 _doc
PUT books
{
"mappings": {
"properties":{
"title":{
"type":"text"
},
"price":{
"type":"integer"
},
"addr":{
"type":"keyword"
},
"company":{
"properties":{
"name":{"type":"text"},
"company_addr":{"type":"text"},
"employee_count":{"type":"integer"}
}
},
"publish_date":{"type":"date","format":"yyy-MM-dd"}
}
}
}
# python 没有基础数据类型---》对象 ---》整形可以无限长
# 字段类型 字段数据类型
string类型:text,keyword
数字类型:byte(int8->一个字节),short(int16->2个字节),integer(int32->4个字节),long(int64-->8个字节),float(float32),double(float64)
日期类型:data
布尔类型:boolean
binary类型:binary
复杂类型:object(实体,对象),nested(列表)
geo类型:geo-point,geo-shape(地理位置)
专业类型:ip,competion(搜索建议)
# 字段参数\映射参数---》字段有参数
属性 描述 适合类型
store 值为yes表示存储,no表示不存储,默认为yes all
index yes表示分析,no表示不分析,默认为true text
null_value 如果字段为空,可以设置一个默认值,比如"NA"(传过来为空,不能搜索,na可以搜索) all
analyzer 可以设置索引和搜索时用的分析器,默认使用的是standard分析器,还可以使用whitespace,simple。都是英文分析器 all
include_in_all 默认es为每个文档定义一个特殊域_all,它的作用是让每个字段都被搜索到,如果想让某个字段不被搜索到,可以设置为false all
format 时间格式字符串模式 date
###### 查看映射 mapping 类型
# 查看books索引的mapping
GET books/_mapping
# 获取所有的mapping
GET _all/_mapping
#### 插入文档
# 测试数据1
PUT books/_doc/1
{
"title":"大头儿子小偷爸爸",
"price":100,
"addr":"北京天安门",
"company":{
"name":"我爱北京天安门",
"company_addr":"我的家在东北松花江傻姑娘",
"employee_count":10
},
"publish_date":"2019-08-19"
}
# 测试数据2
PUT books/_doc/2
{
"title":"白雪公主和十个小矮人",
"price":"99",
"addr":"黑暗森里",
"company":{
"name":"我的家乡在上海",
"company_addr":"朋友一生一起走",
"employee_count":10
},
"publish_date":"2018-05-19"
}
6、Elasticsearch的文档增删查改(CURD)
### 文档增
PUT lqz/_doc/1
{
"name":"顾老二",
"age":30,
"from": "gu",
"desc": "皮肤黑、武器长、性格直",
"tags": ["黑", "长", "直"]
}
### 文档改
# 方式一:覆盖更新
PUT lqz/_doc/1
{
"name":"lqz",
"age":30,
}
# 方式二:真更新
POST lqz/_doc/1/_update
{
"doc": {
"desc": "皮肤很黄,武器很长,性格很直",
"tags": ["很黄","很长", "很直"]
}
}
POST lqz/_update/1
{
"doc": {
"desc": "xx,yy,zz",
"tags": ["很黄","很长", "很直"]
}
}
### 文档删
DELETE lqz/_doc/1
### 文档查(最复杂)
# 方式一:根据id
GET lqz/_doc/1
# 方式二:根据查询字符串
GET lqz/_search?q=from:gu
GET lqz/_search?q=age:29
# 方式三:结构化查询(常用,功能丰富)
GET lqz/_search
{
"query": {
"match": {
"name": "gu"
}
}
}
#### 面试重点:term 和 match的区别
- term代表完全匹配,不进行分词器分析
term 查询的字段需要在mapping的时候定义好,否则可能词被分词。传入指定的字符串,查不到数据
-match
match的查询词会被分词,会把要搜索的词分词---》搜索
存的时候,如果是text类型,会分词,建索引存储
# es是个存数据的地方
-mysql---》存到es
-pymysql取出mysql数据---》存到es中
-查询数据
Es图形化软件使用之ElasticSearch-head、Kibana,Elasticsearch之-倒排索引操作、映射管理、文档增删改查的更多相关文章
- 安装Git和图形化软件[SouceTree跳过首次登陆]
安装Git和图形化软件[SouceTree跳过首次登陆] 标签(空格分隔): 版本控制 安装GIT[客户端]: 下载:[https://git-scm.com/downloads/] 安装:[next ...
- Es学习第三课, ElasticSearch基本的增删改查
前面两课我们了解了ES的基本概念并且学会了安装ES,这节课我们就来讲讲ES基本的增删改查:ES主要对外界提供的是REST风格的API,我们通过客户端操作ES本质上就是API的调用.在第一课我们就讲了索 ...
- 【ES】ElasticSearch初体验之使用Java进行最基本的增删改查~
好久没写博文了, 最近项目中使用到了ElaticSearch相关的一些内容, 刚好自己也来做个总结. 现在自己也只能算得上入门, 总结下自己在工作中使用Java操作ES的一些小经验吧. 本文总共分为三 ...
- ES 16 - 对Elasticsearch中的索引数据进行增删改查 (CRUD)
目录 1 创建document 1.1 创建时手动指定id 1.2 创建时自动生成id 2 查看document 2.1 根据id查询文档 2.2 通过_source字段控制查询结果 3 修改docu ...
- elasticsearch 增删改查底层原理
elasticsearch专栏:https://www.cnblogs.com/hello-shf/category/1550315.html 一.预备知识 在对document的curd进行深度分析 ...
- java操作elasticsearch实现基本的增删改查操作
一.在进行java操作elasticsearch之前,请确认好集群的名称及对应的ES节点ip和端口 1.查看ES的集群名称 #进入elasticsearch.yml配置文件/opt/elasticse ...
- ElasticSearch入门 第五篇:使用C#查询文档
这是ElasticSearch 2.4 版本系列的第五篇: ElasticSearch入门 第一篇:Windows下安装ElasticSearch ElasticSearch入门 第二篇:集群配置 E ...
- elasticsearch增删改查crudp-----1
Elasticsearch一些增删改查的总结 环境Centos7+Es 5.x 简单介绍下ES的原理: 1,索引 --相当于传统关系型数据库的database或schema 2,类型 --相当于传 ...
- Elasticsearch学习系列之单模式下API的增删改查操作
这里我们通过Elasticsearch的marvel插件实现单模式下API的增删改查操作 索引的初始化操作 创建索引之前可以对索引进行初始化操作,比如先指定shard数量以及replicas的数量 代 ...
随机推荐
- H5使用Canvas绘图
一.什么是Canvas Canvas 是H5的一部分,允许脚本语言动态渲染图像.Canvas 定义一个区域,可以由html属性定义该区域的宽高,javascript代码可以访问该区域,通过一整套完整的 ...
- 解决使用 swiper 常见的问题
使用 swiper 的过程中个人总结 1. swiper插件使用方法, 直接查看文档 swiper基础演示 swiper API文档 2.swiper近视初始化时, 其父级元素处于隐藏状态(displ ...
- 数据库查询中where和having的用法
1.类型: "baiWhere"是一个约束声明,在查询数据库du的结果返回之前对数据库中zhi的查询条件进行约束dao,即在结果返回之前起作用,且where后面不能使用" ...
- 安装并使用Junit
在Eclipse中配置Junit的方法有两种方式: 第一种方法: 1.下载junit的jar包,目前它的版本是junit3.8.1,可以从www.junit.org上下载. 2.在要使用Junit的p ...
- 前端加密办法之混淆js加密
每个页面都是有数据和页面结构以及样式组成,对于单页面的作者来说这中分离的感觉会明显一点,那当我们通过ajax请求拿到数据之后我们一般就是把数据渲染到页面,但是数据接口又不想那么明显是一个json字符串 ...
- Jenkins+gitlab手动部署
环境: Jenkins:172.16.88.221 (安装Jenkins和git命令) gitlab:172.16.88.221 (安装gitlab) 远程部署机器:172.16.88.220 (安装 ...
- CPUs Intel 925X/915 Chipset (925X主板芯片组)
这个是2004年的intel产品的设计(主板,主板芯片组,北桥,南桥),结构也比较清晰,主要想看南桥和北桥的设计. 一些英文解释 ECC是一种能够实现"错误检查和纠正"的技术D92 ...
- Edu CF 103 Div. 2 (A. K-divisible Sum, B. Inflation贪心),被黑客攻了,,惨掉rank, 思维除法与取余, 不太擅长的类型
2021-01-29 题目链接: Educational Codeforces Round 103 (Rated for Div. 2) 题目 A. K-divisible Sum You are g ...
- ArcGIS使用技巧(四)——山体阴影
新手,若有错误还请指正! 最近在制图的时候出现如下的情况(图1),怎么调整Display的三个参数都没用. 图 1 查看其信息,发现dem的像元大小为0.00027(图2),是未投影的 图 2 查看A ...
- svelte组件:svelte3自定义桌面PC端对话框组件svelte-layer
基于Svelte3.x开发pc网页版自定义弹窗组件svelteLayer. svelte-layer:基于svelte.js轻量级多功能pc桌面端对话框组件.支持多种弹窗类型.30+参数随意组合配置, ...