Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【全文检索_05】Elasticsearch 基本使用 ㈠

【全文检索_05】Elasticsearch 基本使用 ㈠

作者头像
Demo_Null
发布于 2021-02-02 08:52:51
发布于 2021-02-02 08:52:51
5890
举报
文章被收录于专栏:Java 学习Java 学习

1.1 数据类型

1.1.1 核心数据类型

类型

字符串类型

text【分词】、keyword【不分词】

数值类型

long、integer、short、byte、double、float、half_float、scaled_float

日期类型

date

布尔类型

boolean

二进制类型

binary

范围类型

integer_range、float_range、long_range、double_range、date_range

1.1.2 复杂数据类型

类型

数组类型

array

对象类型

object

嵌套类型

nested object

地理位置类型

geo_point【点】、geo_shape【形状】

1.2 Document 操作

1.2.1 Restful 操作

method

URL

说明

PUT

索引名称/类型名称/文档id

创建文档(指定文档id)

POST

索引名称/类型名称

创建文档(随机文档id)

POST

索引名称/类型名称/文档id/_update

修改文档

DELETE

索引名称/类型名称/文档id

删除文档

GET

索引名称/类型名称/文档id

通过文档 id 查询文档

POST

索引名称/类型名称/_search

查询所有的数据

1.2.2 自动创建 Mapping

  如上图所示,我们就创建一个名为 my_index 的索引并在其下创建了 id 为 001 的文档,在创建索引时我们并没有指定 Mapping,所以在添加数据时会自动帮我们匹配数据类型。可以使用 GET my_index/_mapping 查看索引的 Mapping。

1.2.3 手动创建 Mapping

  如上图所示,就创建好了一个指定数据类型的索引,然后向其中添加数据就行了,添加数据就是创建文档,方式参考 1.2.1 。我们使用 GET my_index1/_search 就可以查询到索引中的全部数据了。需要注意的是,不论是自动匹配的数据类型还是自己声明的数据类型,一经确定就不能存其他类型的数据了。

1.2.4 修改文档

  如上图所示,我们在同一个索引中添加相同文档 id 的数据(POST、PUT 均可),他会覆盖上一个文档中的数据,另外数据的版本号 _version +1,注意这种方式如果漏掉了某些数据,不会保留旧的数据,相当于删除了旧的数据,根据新的重新创建。还有一种 update 方法,不设置某些值数据也不会丢失。

1.2.5 删除索引/文档

  删除使用 DELETE,会根据请求来判断删除的是文档还是索引。

1.3 分词器

1.3.1 默认分词器

  在 ES 中字符串类型有 keyword 和 text 两种。keyword 默认不进行分词,text 不指定分词器会使用默认分词器分词,如上图所示,就是使用默认分词器分的,它将每一个汉字拆开称为独立的词,显然不适合生产环境,我们需要使用其他分词器来帮助我们。

1.3.2 IK 分词器

  我们在之前的 【全文检索_03】Lucene 基本使用 中简单介绍了 IK 分词器的 Java API 的使用,ES 是基于 Lucene 开发的,那么也可以使用 IK 分词器,只不过大佬将 IK 封装成了一个插件,我们去 github 下载后,添加到 ES 的插件库中就可以使用了,简单粗暴来说就是下载后丢到 ES 的 plugins 文件夹中解压就 OK 了。

  IK 分词器提供了两个分词算法 ik_smartik_max_word,其中 ik_smart为最粗粒度的拆分,即分词的时候只分一次,句子里面的每个字只会出现一次。ik_max_word 为最细粒度划分,即句子中字可以反复出现,只要在词库里面出现过的就拆分出来。

  与之前一样,有 Ik 分词器中没有的词或者不想分词的词可以将其加入到扩展词典或者扩展停止词典中。注意这两个词典的后缀为 dic,一行代表一个词。

1.3.3 Mapping 指定分词器

  注意,一定要在创建 Mapping 的时候指定分词器,否则会使用默认的分词器。在指定数据类型时,同时使用 analyzer 就可以指定分词器了,除了默认分词器 Standard 以外,指定其他分词器的前提是已经加载该分词插件。

1.3.4 查询元数据

  如上图所示,使用 GET _cat 就可以查询元数据了,查询后加上 ?v 会显示返回数据的字段名,加 ?help 显示命令返回的参数说明,加 ?h 选择要显示的列,加 ?format 设置返回的内容格式(支持json,yaml,text等),加 ?sort 排序,多个参数一起使用,用 & 连接。详细 cat 用法参考 官网

元数据

说明

plugins

显示节点上的插件

health

查看集群健康状况

indices

查看索引信息

count

显示索引文档的数量

aliases

显示别名,过滤器,路由信息

allocation

显示每个节点分片数量、占用空间

master

显示master节点信息

nodeattrs

显示node节点属性

nodes

显示node节点信息

pending_tasks

显示正在等待的任务

recovery

显示正在进行和先前完成的索引碎片恢复的视图

segments

显示分片中的分段信息

shards

显示索引分片信息

thread_pool

显示线程池信息

templates

显示模板信息

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/01/28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
3.ElasticSearch分布式数据分析引擎基础概念与使用
描述: ES是支持以及HTTP协议进行REST风格接口访问,一般得我们需要有个工具帮我们发送http请求,该工具常见的是curl英 [kɜːl]、Head插件、Kibana DeveloperTool软件等。
全栈工程师修炼指南
2022/09/29
2K0
3.ElasticSearch分布式数据分析引擎基础概念与使用
Elasticsearch 6.x版本全文检索学习之倒排索引与分词、Mapping 设置
1、Elasticsearch的常见术语。注意:Elasticsearch6.x版本以后概念发生了变化。
别先生
2019/10/30
1.8K0
Elasticsearch 6.x版本全文检索学习之倒排索引与分词、Mapping 设置
【Elasticsearch】Rest风格API
Elasticsearch也是基于Lucene的全文检索库,本质也是存储数据,很多概念与MySQL类似的。
陶然同学
2023/02/24
1.1K0
【Elasticsearch】Rest风格API
快速入门Elasticsearch:安装、基本概念、分词器和文档基本操作详解
本文主要介绍快速入门 Elasticsearch,从 安装 、 基本概念 、 分词器 、*** 文档基本操作 *** 这 4 个方面快速入门。
汀丶人工智能
2023/10/25
4.8K0
快速入门Elasticsearch:安装、基本概念、分词器和文档基本操作详解
Elasticsearch 学习笔记
es提供了一个测试分词的 api 接口,方便验证分词效果,endpoint 是 _analyze
学徒漠筱歌
2022/07/17
6240
ElasticSearch快速入门【建议收藏】
ES作为一个索引及搜索服务,对外提供丰富的REST接口,快速入门部分的实例使用head插件来测试,目的是对ES的使用方法及流程有个初步的认识。
码农编程进阶笔记
2022/06/29
5050
ElasticSearch快速入门【建议收藏】
全文检索工具elasticsearch:第一章:理论知识
什么是搜索, 计算机根据用户输入的关键词进行匹配,从已有的数据库中摘录出相关的记录反馈给用户。 
Java廖志伟
2022/09/28
5150
全文检索工具elasticsearch:第一章:理论知识
elasticsearch中mapping全解实战
?原文地址为https://www.cnblogs.com/haixiang/p/12040272.html,转载请注明出处! ?es与java的整合以及常用CRUD、搜索API已被作者封装,开箱即
海向
2019/12/17
1.2K0
浅入ElasticSearch
•Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎
小炜同学
2022/09/23
3660
【微服务】158:Elasticsearch的使用
而默认的中文分词是将每个字看成一个词,会被分为“我”,“是”,"中","国","人"。
刘小爱
2020/09/23
4870
【微服务】158:Elasticsearch的使用
ElasticSearch7.6入门学习
笔记记录 B站狂神说Java的ElasticSearch课程:https://www.bilibili.com/video/BV17a4y1x7zq
Vincent-yuan
2022/05/06
1.4K0
ElasticSearch7.6入门学习
ElasticSearch集群安装及Java客户端使用
ElasticSearch的官方地址:https://www.elastic.co/guide/en/elasticsearch/reference/master/index.html
茶半香初
2021/11/26
1.8K0
ElasticSearch集群安装及Java客户端使用
【ES三周年】吊打ElasticSearch(入门保姆级教程-1)
文章将介绍:ElasticSearch的作用,搭建elasticsearch的环境(Windows/Linux),ElasticSearch集群的搭建,可视化客户端插件elasticsearch-head的安装及使用,对IK分词器的安装及使用;本章介绍的ElasticSearch操作基于Restful形式(使用http请求的形式)。
北京-宏哥
2023/03/29
23.1K0
【ES三周年】吊打ElasticSearch(入门保姆级教程-1)
ElasticSearch 基本的查询命令+集成 SpringBoot
关于 ElasticSearch 的安装配置请查阅这篇文章:https://blog.csdn.net/weixin_43941364/article/details/105680161
wsuo
2020/07/30
6570
ElasticSearch 基本的查询命令+集成 SpringBoot
快速学习ES6-操作索引
Elasticsearch也是基于Lucene的全文检索库,本质也是存储数据,很多概念与MySQL类似的。
cwl_java
2020/02/11
1.6K0
Elasticearch 搜索引擎(1
总结: elasticsearch是一个基于Lucene的高扩展的分布式搜索服务器,支持开箱即用。 elasticsearch隐藏了Lucene的复杂性,对外提供Restful 接口来操作索引、搜索。 突出优点:
Java_慈祥
2024/08/06
1310
Elasticearch 搜索引擎(1
干货 | Elasticsearch 数据建模指南
如果我们对上述实战问题进行归类,就都可以归结为 Elasticsearch 数据建模问题。
铭毅天下
2022/05/23
1.1K0
干货 | Elasticsearch 数据建模指南
ElasticSearch分布式搜索引擎——从入门到精通
elasticsearch是一款非常强大的开源搜索引擎,具备非常多强大功能,可以帮助我们从海量数据中快速找到需要的内容
不吃紫菜
2023/02/13
3.5K0
ElasticSearch分布式搜索引擎——从入门到精通
ElasticSearch
官网:https://www.elastic.co/cn/downloads/elasticsearch
化羽羽
2022/10/28
1.9K0
Elasticsearch 的分词运用
每个全文索引都是一个倒排索引,ES 在进行检索操作时,会建立倒排索引,将拆分的词进行处理,提高索引命中率。
shanizeng
2020/06/11
1.4K0
相关推荐
3.ElasticSearch分布式数据分析引擎基础概念与使用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档