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

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

作者头像
Demo_Null
发布于 2021-02-02 08:52:51
发布于 2021-02-02 08:52:51
5850
举报
文章被收录于专栏: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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
crontab和crond分析
更好使用crontab,和解决crontab使用问题。本文分析的是Paul Vixie版本crontab和crond。一般可通过执行“man crontab”查看AUTHOR是不是“Paul Vixie”。
一见
2018/08/02
7840
踩坑记录-crontab每10秒执行一次
写在前面,记录一个linux小白使用crontab中遇到的各种坑及解决思路方法。网上帖子千千万,坑也是千千万。记录下,分享给大家。
学一学大数据
2019/05/30
6.4K0
linux设置crontab任务_定时任务crontab每天7点执行
在LINUX中,周期执行的任务一般由cron这个守护进程来处理[ps -ef|grep cron]。cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。cron的配置文件称为“crontab”,是“cron table”的简写。
全栈程序员站长
2022/09/23
8.6K1
linux设置crontab任务_定时任务crontab每天7点执行
linux定时运行命令脚本——crontab
Linux中,周期执行的任务一般由cron这个守护进程来处理  ps -ef | grep cron 
阳光岛主
2019/02/19
4.2K0
crontab导致CPU异常的问题分析及处理(r3笔记第100天)
今天查看数据库负载没有发现问题,但是当我使用top命令的时候,发现有一个进程占用了大量的cpu资源而且已经执行很长时间了。这一下子引起了我的注意。 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 25807 oraccbs1 25 0 8728 732 564 R 100.0 0.0 2021:19 /bin/sh -c /opt/app/oracle/xxxxxx/Script/DailyChk
jeanron100
2018/03/15
1.1K0
crontab--定时任务
cron:计划任务,是任务在约定的时间执行已经计划好的工作,这是表面的意思。在Linux中,我们经常用到 cron 服务器来完成这项工作。cron服务器可以根据配置文件约定的时间来执行特定的任务。
cultureSun
2023/05/18
3700
crontab--定时任务
测试用 - 4.使用eBPF逃逸容器技术分析与实践
容器安全是一个庞大且牵涉极广的话题,而容器的安全隔离往往是一套纵深防御的体系,牵扯到 AppArmor、Namespace、Capabilities、Cgroup、Seccomp 等多项内核技术和特性,但安全却是一处薄弱则全盘皆输的局面,一个新的内核特性可能就会让看似无懈可击的防线存在突破口。随着云原生技术的快速发展,越来越多的容器运行时组件在新版本中会默认配置 AppArmor 策略,原本我们在《红蓝对抗中的云原生漏洞挖掘及利用实录》介绍的多种容器逃逸手法会逐渐失效;因此我们希望能碰撞出一些攻击手法,进而突破新版本容器环境的安全能力,并使用更契合容器集群的新方式把 “任意文件写” 转化为“远程代码执行”,从而提前布防新战场。
用户3830325
2022/12/20
7440
循环执行定时任务crontab
小编最近在将线上服务器实时的请求都转到测试机,但是由于请求量太多导致log不久就写满磁盘了,手动清理费事费力,因此考虑到自动清理,接触到corntab定时任务。分享给各位。
用户5521279
2019/11/14
1.5K0
【Linux】学习笔记(是) Linux 计划任务 crontab
crontab -e 选择 第二个 vim 即可 在最后加入如下代码 */1 * * * * touch /home/shiyanlou/$(date +\%Y\%m\%d\%H\%M\%S) 格式是
韩旭051
2020/07/02
1.1K0
linux crontab 每隔10秒执行一次[通俗易懂]
在LINUX中你应该先输入crontab -e,然后就会有个vi编辑界面,再输入0 3 * * 1 /clearigame2内容到里面 :wq 保存退出。
全栈程序员站长
2022/11/01
9.2K0
crontab command
Linux 周期性任务 与 Windows 下的计划任务类似,当安装完操作系统后,默认会安装此服务工具,并且会自动启动 crond 进程。crond 进程每分钟会检查是否有要执行的任务,如果有则执行该任务。
恋喵大鲤鱼
2023/10/12
2930
计划任务 crontab、at
* * * * * sleep 10; php /home/php/crontab/tolog.php
以谁为师
2019/05/29
1K0
linux下crontab与anacrontab的使用
每个人或多或少都有一些约会或者是工作,有的工作是例行性的,例如每年一次的加薪、每个月一次的工作报告、每周一次的午餐会报、每天需要的打卡等等; 有的工作则是临时发生的,例如刚好总公司有高官来访,需要你准备演讲器材等等! 用在生活上面,例如每年的爱人的生日、每天的起床时间等等、还有突发性的 3C 用品大降价等等。
小柒吃地瓜
2020/04/23
2.3K0
crontab命令详解
一. Crontab 介绍 1、crontab命令的功能是在一定的时间间隔调度一些命令的执行,我理解为windows下的任务计划。 2、/etc/crontab 文件 在/etc目录下有一个cron
行 者
2018/03/26
9650
crontab命令详解
《linux下crontab的深入分析》
一)cron服务的介绍 cron是Linux系统下一个自动执行指定任务的程序. cron服务要通过命令启动和停止,在Linux上可以通过/etc/init.d/crond脚本启动或停止. 二)cron的配置方式 设置cron有两种方式,也就是编辑/var/spool/cron目录下文件和编辑/etc/crontab配置文件. 1)/var/spool/cron目录下cron文件 我们可以通过crontab命令来编辑操作/var/spool/cron目录下cron文件,当然我们也可以直接编辑/var/spoo
小小科
2018/05/02
1.2K0
crontab日常使用梳理
在日常的运维工作中,对crontab定时任务的制定是再寻常不过的了。根据以往的使用经验梳理如下: 基本格式 : *  *  *  *  *  command 分 时  日  月  周  命令 解释: 第1列表示分钟1~59 每分钟用*或者 */1表示 第2列表示小时0~23(0表示0点) 第3列表示日期1~31 第4列表示月份1~12 第5列标识号星期0~6/7(0或7表示星期天)(或用Sun或Mon简写来表示) 第6列要运行的命令 crontab -e 编辑计划任务 crontab -l 查看计划
洗尽了浮华
2018/01/23
1.3K0
Crontab脚本无法正常执行问题
Crontab执行时若有异常首先要到/var/log下查看cron日志文件文件(vi /var/log/cron),也可以使用用tail -f /var/spool/mail/root 查看最近的crontab执行情况。通常在日志中能够查看到异常都是脚本写的不正确导致的,可以手动执行看下具体原因。若在日志中看到脚本正常执行,但是无正确的预期结果,则无非是两种原因:
我是李超人
2020/08/21
2.3K0
Crontab基础与WSL Ubuntu Crontab不生效问题排查
| | | | +----- 星期中星期几 (0 - 6) (星期天 为0)
coffee1
2025/02/14
870
Linux命令之Crontab——定时任务
rontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
浩Coding
2020/03/04
1.2K0
Linux Crontab 定时任务
cron 系统调度进程。 可以使用它在每天的非高峰负荷时间段运行作业,或在一周或一月中的不同时段运行。cron是系统主要的调度进程,可以在无需人工干预的情况下运行作业。
红目香薰
2022/11/29
5.8K0
Linux Crontab 定时任务
相关推荐
crontab和crond分析
更多 >
LV.0
这个人很懒,什么都没有留下~
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档