Elasticsearch基础操作

news2024/11/25 10:50:39

一、Restful接口

Elasticsearch通过RESTful接口提供与其进行交互的方式。在ES中,提供了功能丰富的RESTful API的操作,包括CRUD、创建索引、删除索引等操作。你可以用你最喜爱的 web 客户端访问 Elasticsearch 。事实上,你甚至可以使用 curl 命令来和 Elasticsearch 交互。

Elasticserch为大部分编程语言(诸如java/javascript/go/ruby等等)提供了官方客户端。所有这些可以在Elasticsearch Clients找到。

二、使用Kibana可视化操作

Kibana是一个用于数据可视化和分析的开源工具。它是Elasticsearch的一个组件,用于在Elasticsearch索引中搜索、分析和互动式地可视化数据。Kibana提供了丰富的图表和图形,可以帮助用户更好地理解和分析数据,从而支持数据驱动的决策和洞察力的发现。

启动之后,浏览器输入:   http://localhost:5601/  ,进入开发者工具控制台

官方学习教程传送门-->  elasticsearch入门教程

三、索引操作

3.1创建索引

PUT /employee?pretty

3.2查询所有索引

其中,employee是我们自己创建的索引,插入了0条数据。

3.3删除索引

四、文档操作

4.1插入新文档

PUT /index_name/_doc/document_id
{
  "field1": "value1",
  "field2": "value2",
  ...
}

其中:index_name代表索引名字,document_id代表文档的id。如果不指定,ES则自动创建一个。如果id已存在,则旧的数据被覆盖

4.2更新文档

POST /employee/doc/1
{
  "name": "Lily"
}

以上命令将索引为customer,id为1的文档,name属性进行更新。

4.3删除文档

4.4查询所有文档

GET /索引名/_search
{"query": {
    "match_all": {}
	}
}

4.5查询指定字段

五、query语法

5.1查询语句的基本语法结构

GET /索引名/_search
{
  "query": {
    "查询类型": {
      "字段名": "查询条件"
    }
  }
}
 
  • GET:请求的类型,表示发送一个GET请求。
  • /索引名/_search:指定要查询的索引和类型。
  • "query":查询的关键字,表示要进行查询操作。
  • "查询类型":查询的类型,如match、term、range等。
  • "字段名":要查询的字段名。
  • "查询条件":具体的查询条件。

5.2match和term的区别

  1. Match查询:Match是一种全文搜索查询,它会将查询字符串分词,并将分词后的项与文档中的词项进行匹配。它会根据查询字符串的分词结果来搜索包含任意匹配项的文档。Match查询使用的是全文搜索的相关性算法,会给每个匹配的文档一个相关性得分。适合text 类型的字段。
  2. Term查询:Term是一种精确匹配查询,它会将查询字符串作为一个整体与文档中的词项进行精确匹配。Term查询不进行分词,而是将查询字符串作为一个单独的术语进行搜索,不适合用于text类型的字段(官网原话Avoid using the term query for text fields
PUT my-index-001
{
  "mappings": {
    "properties": {
      "full_text": { "type": "text" }
    }
  }
}

PUT my-index-001/_doc/1
{
  "full_text":   "Hello Elastic!"
}

新建一个索引,包含一个名为“full_text”的text字段。ES会将text字段拆分为["Hello","Elastic"]。使用term搜索,结果为空。(term为精确匹配,而text字段已被拆分,所以匹配不到)

使用match匹配,则可以查询得到(因为match属于模糊查询,查询前也会进行拆词)

新建一个索引,包含一个名为“full_text”的keyword字段。使用term查询,得到结果。ES不会对keyword类型的字段进行拆词。

5.3范围查询

GET /<index_name>/_search
{
  "query": {
    "range": {
      "<field_name>": {
        "gte": "<lower_limit>",
        "lte": "<upper_limit>"
      }
    }
  }
}
 

其中范围量词有:

gte:大于等于 ;

gt:大于 ;

lte:小于等于;

lt:小于

示例代码:

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

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

相关文章

C#,文字排版的折行问题(Word-wrap problem)的算法与源代码

1、英文的折行问题 给定一个单词序列&#xff0c;以及一行中可以输入的字符数限制&#xff08;线宽&#xff09;。 在给定的顺序中放置换行符&#xff0c;以便打印整齐。 假设每个单词的长度小于线宽。 像MS word这样的文字处理程序负责放置换行符。 这个想法是要有平衡的线条。…

Android基础开发-通讯录的添加和查询

案例&#xff1a;往手机通讯录添加信息&#xff0c;输入姓名和手机号。 保存的手机的表&#xff1a;一共有两个&#xff0c;一个是主表&#xff0c;提供一个联系人id&#xff0c;另外是辅表&#xff0c;提供id对应的手机号和姓名。 普通操作&#xff1a;一个表一个表的添加 …

ThingsBoard开源物联网平台介绍

1. Thingsboard 简介 ThingsBoard是一个基于Java的开源物联网平台&#xff0c;旨在实现物联网项目的快速开发、管理和扩展。它使用行业标准的物联网协议&#xff08;MQTT、CoAP和HTTP&#xff09;实现设备连接&#xff0c;并支持云和本地部署。ThingsBoard结合了可扩展性、容错…

synchronized关键字(锁升级)

概述 synchronized是Java的一个关键字&#xff0c;用来保证多线程下临界区资源的共享安全性 synchronized可以加在方法上&#xff08;静态方法和普通方法&#xff09;、代码块上 使用语法&#xff1a; synchronized (对象) {// 操作临界资源 }public synchronized void te…

云起云落:揭秘云计算基础内功心法

文章目录 云计算基本概念云计算发展历程云计算计算模式云计算商业模式云计算部署模式私有云部署公有云部署混合云部署 云计算虚拟化技术虚拟机模式虚拟化容器模式虚拟化容器VS虚拟机 常见虚拟化工具和技术虚拟化工具“轻量级”虚拟化工具 云计算供应商云计算三要点&#xff08;…

用miniconda建立PyTorch、Keras、TensorFlow三个环境

一、配置清华镜像conda源 由于网络问题&#xff0c;直接使用conda默认的源下载包可能会非常慢。为了解决这个问题&#xff0c;可以配置国内镜像源来加速包的下载。清华大学TUNA协会提供了一个常用的conda镜像源。下面是如何配置清华镜像源的步骤&#xff1a; 1. 配置清华conda…

案例分析篇14:信息系统安全设计考点(2024年软考高级系统架构设计师冲刺知识点总结系列文章)

专栏系列文章推荐: 2024高级系统架构设计师备考资料(高频考点&真题&经验)https://blog.csdn.net/seeker1994/category_12593400.html 【历年案例分析真题考点汇总】与【专栏文章案例分析高频考点目录】(2024年软考高级系统架构设计师冲刺知识点总结-案例分析篇-…

多维时序 | Matlab实现VMD-CNN-LSTM变分模态分解结合卷积神经网络结合长短期记忆神经网络多变量时间序列预测

多维时序 | Matlab实现VMD-CNN-LSTM变分模态分解结合卷积神经网络结合长短期记忆神经网络多变量时间序列预测 目录 多维时序 | Matlab实现VMD-CNN-LSTM变分模态分解结合卷积神经网络结合长短期记忆神经网络多变量时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介…

ARM64汇编06 - 基本整型运算指令

ADD (immediate) 将 Xn 与 imm 相加&#xff0c;结果赋值给 Xd&#xff0c;imm 是无符号数&#xff0c;范围为 0 - 4095。 shift 是对 imm 进行移位&#xff0c;shift 为 0 的时候&#xff0c;表示左移 0 位&#xff0c;即不变。shift 为 1 的时候&#xff0c;表示左移12 位&a…

Django 学习笔记(Day1)

「写在前面」 本文为千锋教育 Django 教程的学习笔记。本着自己学习、分享他人的态度&#xff0c;分享学习笔记&#xff0c;希望能对大家有所帮助。 目录 0 课程介绍 1 Django 快速入门 1.1 Django 介绍 1.2 Django 安装 1.3 创建 Django 项目 1.4 运行 Django 项目 1.5 数据迁…

使用 Ruby 或 Python 在文件中查找

对于经常使用爬虫的我来说&#xff0c;在大多数文本编辑器都会有“在文件中查找”功能&#xff0c;主要是方便快捷的查找自己说需要的内容&#xff0c;那我有咩有可能用Ruby 或 Python实现类似的查找功能&#xff1f;这些功能又能怎么实现&#xff1f; 问题背景 许多流行的文本…

vite 安装tailwindcss失效

需求&#xff1a;在vite5 vue3 ts中安装tailwindcss 问题&#xff1a;按照tailwindcss的官方文档进行安装&#xff0c;可是一直不生效 解决方式&#xff1a; 在mian.ts 里面导出 style.css 文件 就可以了哈

【HomeAssistant新版文件管理器】

【HomeAssistant新版文件管理器】 1. 前言2. 地址3. 安装4. 使用方法5. 总结欢迎大家阅读2345VOR的博客【Home Assistant 之QQ邮箱推送提醒】🥳🥳🥳2345VOR鹏鹏主页: 已获得CSDN《嵌入式领域优质创作者》称号🎉🎉、阿里云《arduino专家博主》👻👻👻,座右铭:…

基于Springboot的预报名管理系统(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的预报名管理系统&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&a…

从根到叶:深入了解Map和Set

窗间映出一片高远的天空&#xff0c; 向晚的天际宁静而又清明。 我孤独的心灵在幸福地哭泣&#xff0c; 它在为天空如此美好而高兴。 恬静的晚霞一片火红&#xff0c; 晚霞灼烧着我的热情。 此刻的世界没有别人&#xff0c; 只有上帝&#xff0c;我和天空。 ——&#x…

【vivado】 clock wizard 时钟IP

一、前言 MMCM和PLL是在FPGA设计中不可避免需要使用到的时钟资源&#xff0c;对于其功能及使用方法的理解是正确进行FPGA设计的前提。 二、Xilinx 时钟 IP配置 vivado中使用时钟向导(Clocking Wizard)配置时钟IP核&#xff0c;其框图如下&#xff1a; clk_in 输入时钟&#…

Grafana

介绍 官网&#xff1a;https://grafana.com/ Grafana 是一个开源的指标分析和可视化工具&#xff0c;它被广泛用于展示和监控云基础设施和应用程序的实时数据。Grafana 提供了一个强大且易于使用的界面&#xff0c;允许用户创建各种图表、图形和仪表盘&#xff0c;以直观地展…

【漏洞复现】大华智慧园区综合管理平台SQL注入漏洞

Nx01 产品简介 大华智慧园区综合管理平台是一款综合管理平台&#xff0c;具备园区运营、资源调配和智能服务等功能。该平台旨在协助优化园区资源分配&#xff0c;满足多元化的管理需求&#xff0c;同时通过提供智能服务&#xff0c;增强使用体验。 Nx02 漏洞描述 大华智慧园区…

Web3:数字身份与隐私保护的新篇章

1. 数字身份验证的革新 在传统互联网上&#xff0c;个人的数字身份通常由中心化的身份验证机构控制&#xff0c;存在安全性和隐私保护的风险。而在Web3中&#xff0c;基于区块链技术的去中心化身份验证方案正在兴起。通过使用分布式账本和加密技术&#xff0c;Web3可以提供更安…

122. 买卖股票的最佳时机 II(力扣LeetCode)

文章目录 122. 买卖股票的最佳时机 II题目描述贪心 122. 买卖股票的最佳时机 II 题目描述 给你一个整数数组 prices &#xff0c;其中 prices[i] 表示某支股票第 i 天的价格。 在每一天&#xff0c;你可以决定是否购买和/或出售股票。你在任何时候 最多 只能持有 一股 股票。…