【ELK】【Elasticsearch】数据查询方式

news2025/2/23 3:47:14

1. 简单查询(URI Search)

通过 URL 参数直接进行查询,适合简单的搜索场景。

示例

bash

复制

GET /index_name/_search?q=field_name:search_value

说明

  • index_name:索引名称。

  • field_name:字段名称。

  • search_value:搜索值。

特点

  • 简单易用,适合快速测试。

  • 功能有限,不支持复杂的查询逻辑。


2. DSL 查询(Query DSL)

使用 Elasticsearch 的 Query DSL(Domain Specific Language)进行查询,支持复杂的查询逻辑。

示例

json

复制

GET /index_name/_search
{
  "query": {
    "match": {
      "field_name": "search_value"
    }
  }
}

常用查询类型

  • Match Query:全文搜索,支持分词。

    json

    复制

    {
      "query": {
        "match": {
          "field_name": "search_value"
        }
      }
    }
  • Term Query:精确匹配,不支持分词。

    json

    复制

    {
      "query": {
        "term": {
          "field_name": {
            "value": "search_value"
          }
        }
      }
    }
  • Range Query:范围查询。

    json

    复制

    {
      "query": {
        "range": {
          "field_name": {
            "gte": 10,
            "lte": 20
          }
        }
      }
    }
  • Bool Query:组合查询(支持 mustshouldmust_not)。

    json

    复制

    {
      "query": {
        "bool": {
          "must": [
            { "match": { "field1": "value1" } },
            { "match": { "field2": "value2" } }
          ]
        }
      }
    }

特点

  • 功能强大,支持复杂的查询逻辑。

  • 适合生产环境使用。


3. 聚合查询(Aggregations)

用于对数据进行统计和分析,支持多种聚合操作(如求和、平均值、分组等)。

示例

json

复制

GET /index_name/_search
{
  "size": 0,
  "aggs": {
    "group_by_field": {
      "terms": {
        "field": "field_name"
      }
    }
  }
}

常用聚合类型

  • Terms Aggregation:按字段值分组。

  • Metric Aggregation:计算指标(如 sumavgmaxmin)。

  • Date Histogram Aggregation:按时间区间分组。

  • Nested Aggregation:嵌套聚合。

特点

  • 适合数据分析场景。

  • 可以结合 Query DSL 使用。


4. 过滤查询(Filter Context)

用于过滤数据,通常与 Query DSL 结合使用。

示例

json

复制

GET /index_name/_search
{
  "query": {
    "bool": {
      "filter": [
        { "term": { "field_name": "value" } }
      ]
    }
  }
}

特点

  • 过滤条件不参与评分,性能较高。

  • 适合精确匹配场景。


5. 高亮查询(Highlighting)

用于高亮显示搜索结果中的匹配部分。

示例

json

复制

GET /index_name/_search
{
  "query": {
    "match": {
      "field_name": "search_value"
    }
  },
  "highlight": {
    "fields": {
      "field_name": {}
    }
  }
}

特点

  • 适合需要突出显示搜索结果的场景。


6. 分页查询(Pagination)

用于分页获取数据。

示例

json

复制

GET /index_name/_search
{
  "from": 0,
  "size": 10,
  "query": {
    "match_all": {}
  }
}

说明

  • from:起始位置。

  • size:每页大小。

特点

  • 适合大数据量的分页查询。


7. 排序查询(Sorting)

用于对搜索结果进行排序。

示例

json

复制

GET /index_name/_search
{
  "query": {
    "match_all": {}
  },
  "sort": [
    { "field_name": { "order": "asc" } }
  ]
}

特点

  • 支持多字段排序。

  • 可以结合分页查询使用。


8. 脚本查询(Script Query)

使用脚本进行自定义查询。

示例

json

复制

GET /index_name/_search
{
  "query": {
    "script": {
      "script": {
        "source": "doc['field_name'].value > params.value",
        "params": {
          "value": 10
        }
      }
    }
  }
}

特点

  • 支持复杂的自定义逻辑。

  • 性能较低,慎用。


9. 嵌套查询(Nested Query)

用于查询嵌套类型的字段。

示例

json

复制

GET /index_name/_search
{
  "query": {
    "nested": {
      "path": "nested_field",
      "query": {
        "match": {
          "nested_field.sub_field": "value"
        }
      }
    }
  }
}

特点

  • 适合处理嵌套结构的文档。


10. 跨索引查询(Cross-Index Search)

可以同时查询多个索引的数据。

示例

json

复制

GET /index1,index2/_search
{
  "query": {
    "match_all": {}
  }
}

特点

  • 适合需要从多个索引中查询数据的场景。


总结

Elasticsearch 提供了丰富的查询方式,可以根据不同的需求选择合适的查询方法:

  • 简单查询:适合快速测试。

  • DSL 查询:功能强大,适合生产环境。

  • 聚合查询:适合数据分析。

  • 过滤查询:适合精确匹配。

  • 高亮查询:适合突出显示搜索结果。

  • 分页查询:适合大数据量场景。

  • 脚本查询:支持自定义逻辑。

根据具体场景选择合适的查询方式,可以提高查询效率和准确性。

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

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

相关文章

纯手工搭建整套CI/CD流水线指南

目录 一、前言 二、环境准备 1、服务器开荒(192.168.1.200) 2、离线资源清单(提前用U盘拷好) 三、硬核安装:比拧螺丝还细的步骤 Step1:搭建GitLab(注意!这是只内存饕餮&#xf…

智能硬件新时代,EasyRTC开启物联音视频新纪元

在万物互联的时代浪潮中,智能硬件正以前所未有的速度融入我们的生活,从智能家居的便捷控制,到智能穿戴设备的健康监测,再到工业物联网的高效管理,智能硬件的应用场景不断拓展。而在这个智能硬件蓬勃发展的背后&#xf…

Rust编程语言入门教程(八)所有权 Stack vs Heap

Rust 系列 🎀Rust编程语言入门教程(一)安装Rust🚪 🎀Rust编程语言入门教程(二)hello_world🚪 🎀Rust编程语言入门教程(三) Hello Cargo&#x1f…

交易所开发:数字市场的核心动力

数字资产交易所作为连接用户与市场的核心枢纽,已成为推动数字经济发展的关键引擎。其开发不仅需要技术创新,还需兼顾用户体验、合规安全与生态构建,以下是交易所开发的核心要素与实践路径分析: 一、交易所的核心定位与技术架构…

Jmeter进阶篇(34)如何解决jmeter.save.saveservice.timestamp_format=ms报错?

问题描述 今天使用Jmeter完成压测执行,然后使用命令将jtl文件转换成html报告时,遇到了报错! 大致就是说jmeter里定义了一个jmeter.save.saveservice.timestamp_format=ms的时间格式,但是jtl文件中的时间格式不是标准的这个ms格式,导致无法正常解析。对于这个问题,有如下…

Navicat17详细安装教程(附最新版本安装包和补丁)2025最详细图文教程安装手册

目录 前言:为什么选择Navicat 17? 一、下载Navicat17安装包 二、安装Navicat 1.运行安装程序 2.启动安装 3.同意“协议” 4.设置安装位置 5.创建桌面图标 6.开始安装 7.安装完成 三、安装补丁 1.解押补丁包 2.在解压后的补丁包目录下找到“w…

一文详解U盘启动Legacy/UEFI方式以及GPT/MBR关系

对于装系统的老手而说一直想研究一下装系统的原理,以及面对一些问题时的解决思路,故对以前的方法进行原理上的解释,主要想理解其底层原理。 引导模式 MBR分区可以同时支持UEFI和Legacy引导,我们可以看一下微pe制作的启动盘&#…

LeetCode 热题 100_搜索二维矩阵(64_74_中等_C++)(二分查找)(暴力破解法;Z字形查找;一次二分查找)

LeetCode 热题 100_搜索二维矩阵(64_74) 题目描述:输入输出样例:题解:解题思路:思路一(暴力破解法):思路二(Z字形查找):思路三&#x…

学习量化交易的环境安装记录

1、安装anaconda 因为使用python,需要安装anaconda,具体是下面的官方地址,根据自己需要下载相应的版本 https://www.anaconda.com/download 运行上面下载的文件,安装anaconda 可以根据自己需要安装到相应的盘上面 同时环境变量…

MySQL数据库入门到大蛇尚硅谷宋红康老师笔记 高级篇 part 1

第01章_Linux下MySQL的安装与使用 首先在vmware中下载centos7,实际上8更好一点,不过centos已经是时代的眼泪了,我之前已经教过了,不过是忘了,所以重新说一遍,看文档即可 2.开机前修改mac地址 &#xff0…

基于AVue的二次封装:快速构建后台管理系统的CRUD方案

基于AVue的二次封装:快速构建后台管理系统的CRUD方案 在开发后台管理系统时,表格是常见的组件之一。然而,使用原生的Element Plus实现CRUD(增删改查)功能往往需要编写大量重复代码,过程繁琐。即使借助类似…

第6章:基于LangChain如何开发Agents,附带客户支持智能体示例

本文主要介绍了 LangChain4j 中的 Agent(代理) 概念,以及如何使用 LangChain4j 构建代理系统,重点提供了一个客户支持系统的智能体样例 代理(Agents)| LangChain4j 注意: 请注意,“A…

传统的自动化行业的触摸屏和上位机,PLC是否会被取代?

传统的自动化行业的触摸屏和上位机是否会被取代? 在工业自动化领域,触摸屏和上位机长期扮演着核心角色,尤其在污水处理、化工生产等场景中,它们通过实时数据采集、逻辑控制、报警联动等功能,保障了生产设备的稳定运行…

智能合约的部署

https://blog.csdn.net/qq_40261606/article/details/123249473 编译 点击图中的 “Compile 1_Storage.sol” 存和取一个数的合约&#xff0c;remix自带 pragma solidity >0.8.2 <0.9.0; /*** title Storage* dev Store & retrieve value in a variable* custom:d…

word$deepseep

1、进入官网地址。 DeepSeek 2、进入DeepSeek的API文档 3、点击DeepSeek开放平台左侧的“API Keys”, 再点击“创建API Key” 4、在弹出的对话框中&#xff0c;输入自己的API Key名称&#xff0c;点击创建。 sk-0385cad5e19346a0a4ac8b7f0d7be428 5、打开Word文档。 6、Word找…

Mac系统下使用Docker快速部署MaxKB:打造本地知识库问答系统

随着大语言模型的广泛应用&#xff0c;知识库问答系统逐渐成为提升工作效率和个人学习的有力工具。MaxKB是一款基于LLM&#xff08;Large Language Model&#xff09;大语言模型的知识库问答系统&#xff0c;支持多模型对接、文档上传和自动爬取等功能。本文将详细介绍如何在Ma…

如何为自己的 PDF 文件添加密码?在线加密 PDF 文件其实更简单

随着信息泄露和数据安全问题的日益突出&#xff0c;保护敏感信息变得尤为重要。加密 PDF 文件是一种有效的手段&#xff0c;可以确保只有授权用户才能访问或修改文档内容。本文将详细介绍如何使用 CleverPDF 在线工具为你的 PDF 文件添加密码保护&#xff0c;确保其安全性。 为…

华为昇腾910b服务器部署DeepSeek翻车现场

最近到祸一台HUAWEI Kunpeng 920 5250&#xff0c;先看看配置。之前是部署的讯飞大模型&#xff0c;发现资源利用率太低了。把5台减少到3台&#xff0c;就出了他 硬件配置信息 基本硬件信息 按照惯例先来看看配置。一共3块盘&#xff0c;500G的系统盘&#xff0c; 2块3T固态…

hive—常用的函数整理

1、size(split(...))函数用于计算分割后字符串数组的长度 实例1&#xff09;&#xff1a;由客户编号列表计算客户编号个数 --数据准备 with tmp_test01 as ( select tag074445270 tag_id,202501busi_mon , 012399931003,012399931000 index_val union all select tag07444527…

Unity Mirror 多房间匹配

文章目录 一 、一些唠叨二 、案例位置三、多房间匹配代码解析四、关于MatchInterestManagement五、总结 一 、一些唠叨 最近使用Mirror开发了一款多人同时在线的肉鸽塔防游戏,其目的是巩固一下Mirror这个插件的熟练度,另一方面是想和身边的朋友一起玩一下自己开发的游戏. 但是…