Elasticsearch7.15.2 基础概念和基础语法

在这里插入图片描述
在这里插入图片描述

文章目录

          • 一、基础概念
            • 1. ES是什么?
            • 2. 名词定义
            • 3. 对应关系
            • 4. 索引
            • 5. 分词
          • 二、基础概念
            • 2.1. 索引创建
            • 2.2. 索引/文档删除
            • 2.3. 索引修改
          • 三、ES 查询
            • 3.1. 简单查询
            • 3.2. 分页查询
            • 3.3. 复杂查询
          • 四、利用analyze api搜索
            • 4.1. 索引创建
            • 4.2. 索引查询
            • 4.3. 分词结果
            • 4.4. 索引重新创建
            • 4.5. 索引查询

一、基础概念
1. ES是什么?

独立的网络上的一个或自足进程节点
对外提供搜索服务(http、transport协议)
对内就是一个搜索数据库

2. 名词定义

Elasticsearch也是基于Lucene的全文检索库,本质也是存储数据,很多概念与MySQL类似的。

3. 对应关系
Relation databaseses7
Databases数据库index索引值得是数据库结构
​Row 行document文档
Column 列Field
SchemaMapping
Index索引Ecerything indexed 所有的字段都可以来做索引
SQLQuery DSL
SELECT * FROM tableGET http://…
UPDATE FROM tablePUT http:// …
4. 索引

搜索中的数据库或表定义
构建文档时候的索引创建

5. 分词

搜索十一分词为单位做基本的搜索单元
依靠分词器构建分词
用分词构建倒排索引
在这里插入图片描述
用户搜索的时候,搜索对应的分词器,分出的一个token之后,再和索引中存储的分词,找到我们想要的文档。

二、基础概念
2.1. 索引创建
  • 非结构化方式
# ------------------非结构化方式-----------------
# 创建一个索引
PUT /test
{"settings" : {"number_of_shards" : 1,"number_of_replicas" : 1}
}# 分布式节点创建
# 更新其replicas状态,但是不能更新shards状态
PUT /test/_settings
{"settings" : {"number_of_replicas" : 0}
}# 创建索引,指定id建立索引
PUT /employee/_doc/1
{"name": "凯杰", "age": 30
}# 不指定id建立索引
POST /employee/_doc/
{"name": "dsfsfsf", "age": 30
}# 指定_create防止重复创建
POST /employee/_create/1/
{"name": "凯1213132杰", "age": 30
}
  • 结构化方式
# 结构化创建
PUT /employee/
{"settings" : {"number_of_shards" : 1,"number_of_replicas" : 1},"mappings" : {"properties" : {"name" : { "type" : "text" },"age" : { "type" : "integer" }}}
}
2.2. 索引/文档删除

# 删除文档
DELETE /employee/_doc/1# 删除索引
DELETE /employee
2.3. 索引修改
# 指定id全量修改索引
PUT /employee/_doc/1
{"name": "凯dsfsf32杰", "age":22
}# 指定id部分字断修改
POST employee/_update/1
{"doc" : {"name" : "new_name"}
}
三、ES 查询
3.1. 简单查询
# 查询全部
GET /employee/_search# 根据主键id查询索引
GET /employee/_doc/1
3.2. 分页查询
GET /employee/_search
{"query":{"match_all": {}},"from":1,"size":1
}
3.3. 复杂查询
  • 带条件
GET /employee/_search
{"query":{"match": {"name":"ES"}}
}
  • 带排序
GET /employee/_search
{"query":{"match": {"name":"ES"}},"sort":[{"age":{"order":"desc"}}]
}
  • 带聚合
GET /employee/_search
{"query":{"match": {"name":"ES"}},"sort":[{"age":{"order":"desc"}}],"aggs":{"group_by_age":{"terms":{"field":"age"}}}
}
四、利用analyze api搜索
4.1. 索引创建
PUT /employee/_doc/1
{"name": "Eating an apple a day & keeps the doctor away", "age": 30
}
4.2. 索引查询
GET /employee/_search
{"query":{"match": {"name":"eat"}}
}
4.3. 分词结果

没搜到后使用analyze api查看分析处理结果,可以看到没有分出eat。

GET /employee/_analyze
{"field":"name","text":"Eating an apple a day & keeps the doctor away"
}

可以看到没有分出eat,所以搜不到,改成用english分词器做

4.4. 索引重新创建
PUT /employee=
{"settings" : {"number_of_shards" : 1,"number_of_replicas" : 1},"mappings" : {"properties" : {"name" : { "type" : "text","analyzer": "english"},"age" : {"type":"integer"}}}
}
4.5. 索引查询

在用analyze api,可以看到eat

GET /employee/_analyze
{"field":"name","text":"Eating an apple a day & keeps the doctor away"
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/516793.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

技术重塑未来工作方式

作者: Nutanix亚太及日本地区高级副总裁兼销售负责人 Matt Young 新冠肺炎被宣布为“大流行病”之后,几乎在一夜之间,业务连续性的概念发生了根本性变化。在此之前,业务连续性通常指的是企业在某一办公地点遭遇像洪灾等恶劣天气或…

node环境搭建流程

1、前期准备 要把C盘下的与node和npm相关的目录删除,卸载安装不规范的node环境。 2、Node下载与安装 去node官网下载:https://nodejs.org/zh-cn/download/ 安装参考教程:https://www.runoob.com/nodejs/nodejs-install-setup.html node安…

Elasticsearch7.15.2 ik中文分词器 定制化分词器之扩展词库(本地)

背景: IK分词提供的两个分词器,并不支持一些新的词汇,有时候也不能满足实际业务需要,这时候,我们可以定义自定义词库来完成目标。 目标: 定制化中文分词器,使得我们的中文分词器支持扩展的词汇 …

多点在线构建Noxmobi全球化精准营销系统

摘要:大数据计算服务(MaxCompute,原名ODPS)是一种快速、完全托管的TB/PB级数据仓库解决方案。MaxCompute向用户提供了完善的数据导入方案以及多种经典的分布式计算模型,能够更快速的解决用户海量数据计算问题,有效降低企业成本&am…

云原生安全厂商小佑科技获达泰资本千万级投资

近日,云原生安全领导厂商小佑科技宣布,获得千万级人民币的天使轮融资。该轮融资由达泰资本独家投资,将主要用于加强云原生安全产品核心技术研发、销售网络拓展和生态伙伴建设等关键目标,进而为用户提供更加高效的云原生安全解决方…

Elasticsearch7.15.2 ik中文分词器 定制化分词器之扩展词库(远程)

IK分词提供的两个分词器,并不支持一些新的词汇,有时候也不能满足实际业务需要,这时候,我们可以定义自定义词库来完成目标。 文章目录一、静态web搭建1. 安装nginx2. 创建es目录3. 创建分词文件4. 存放静态5. 验证二、配置远程分词…

万博智云上云 单机软件升级多并发SaaS平台

云栖号案例库:【点击查看更多上云案例】 不知道怎么上云?看云栖号案例库,了解不同行业不同发展阶段的上云方案,助力你上云决策! 业务痛点 自2016年开发迁移工具主要面向私有云环境,但是随着公有云用户越来…

学会这10大高性能开发技术,轻松躲过裁员名单!

来源 | 编程技术宇宙责编 | Carol封图 | CSDN 下载自视觉中国程序员经常要面临的一个问题就是:如何提高程序性能?这篇文章,我们循序渐进,从内存、磁盘I/O、网络I/O、CPU、缓存、架构、算法等多层次递进,串联起高性能开…

修改npm默认全局安装路径

修改NPM全局安装的默认路径(不要轻易操作) 查看当前的全局安装路径 npm config ls安装指定的目录安装node.js,例如: c:\nodejs。 node.js安装完成之后,需要在 c:\node.js 目录下创建两个文件夹: c:\nod…

开放搜索助力提升趣店商城20%转化率

云栖号案例库:【点击查看更多上云案例】 不知道怎么上云?看云栖号案例库,了解不同行业不同发展阶段的上云方案,助力你上云决策! 公司介绍 趣店集团,成立于2014年3月,是中国领先的金融科技企业&…

Elasticsearch7.15.2 修改IK分词器源码实现基于MySql8的词库热更新

文章目录一、源码分析1. 默认热更新2. 热更新分析3. 方法分析二、词库热更新2.1. 导入依赖2.2. 数据库2.3. JDBC 配置2.4. 打包配置2.5. 权限策略2.6. 修改 Dictionary2.7. 热更新类2.8. 编译打包2.9. 上传2.10. 修改记录三、服务器操作3.1. 分词插件目录3.2. 解压es3.3. 移动文…

母婴企业上云 实现线上线下互动营销、一体化管理服务

云栖号案例库:【点击查看更多上云案例】 不知道怎么上云?看云栖号案例库,了解不同行业不同发展阶段的上云方案,助力你上云决策! 公司介绍 主要从事母婴产品的销售,拥有三家门店,未上云之前采用…

确认! Python再次夺冠,老码农:崩溃!

2020年转眼已过大半,在近一年的编程语言榜单中,Python已经走上卫冕的道路,并且与Java的差距拉得更远了一些。以往与Java常呈现你追我赶之势,而这一次则是直接相差由10%增加到15%!毋庸置疑Python的火,有目共…

React简介及基础用法

1、React简介 1.1、React概述 React 是用于构建用户界面的 javascript 库,具有声明式、组件化等特点。 1.2、MVC和MVVM模式 MVC(Model-View-Controller,模型-视图-控制器),Model指模型数据,View是显示的…

SAP与阿里云的深度合作 为企业提供领先的SaaS 服务

云栖号案例库:【点击查看更多上云案例】 不知道怎么上云?看云栖号案例库,了解不同行业不同发展阶段的上云方案,助力你上云决策! 什么是企业IT治理? 企业IT治理是对企业中IT资源的合理规划和分配&#xff0…

Docker JFrog Artifactory 7.27.10 maven私服(搭建篇)

文章目录一、docker 准备1. 安装docker2. 启动docker3. 监控docker状态二、docker 镜像2.1. 搜索JFrog Artifactory镜像2.2. 拉取镜像2.3. 开放对应端口2.4. 浏览器验证2.5. 登录一、docker 准备 1. 安装docker yum install docker2. 启动docker systemctl start docker3. 监…

阿里妈妈数据字化营销与MaxCompute的不解之缘

摘要: 大数据计算服务(MaxCompute)是一种快速、完全托管的 GB/TB/PB 级数据仓库解决方案,目前已在阿里巴巴内部得到大规模应用。来自阿里妈妈基础平台大规模数据处理技术专家向大家分享了MaxCompute在阿里妈妈数据字化营销解决方案…

年薪201万的华为“天才少年”曾是三本复读生,逆袭就是抓住每一次提升自己的机会 | AI大赛报名开启

当我们看到“华为最高档天才少年年薪201万的话题”冲上热搜时,大多数人一辈子也无法企及的数字让我们羡慕不已。而入选的大部分是计算机、软件工程、模式识别与智能系统专业,尽管我们知道这些专业很火,薪资很高,但对于百万年薪来说…

redux中间件原理-讲义

1、redux中间件简介 1.1、什么是redux中间件 redux 提供了类似后端 Express 的中间件概念,本质的目的是提供第三方插件的模式,自定义拦截 action -> reducer 的过程。变为 action -> middlewares -> reducer 。这种机制可以让我们改变数据流&…

MySQL8.0.26 开启bin_log日志 linux

binlog日志,即binary log,是二进制日志文件。它有两个作用,一是增量备份,即只备份新增的内容;二是用于主从复制等,即主节点维护了一个binlog日志文件,从节点从binlog中同步数据。我们可以通过bi…