ES基本使用方式

ES基本使用

文章目录

  • ES基本使用
    • 1.es的访问
      • 使用URL访问
    • 2.mapping的理解
      • Dynamic Mapping
      • keyword 与 text的区别‌
        • 基础定义与核心差异
        • 主字段,子字段
      • 创建mapping
    • 3.创建索引
    • 4.查看索引列表
    • 5.删除索引
    • 6.添加数据
    • 7.查询数据

重置es密码,初始用户elastic

elasticsearch-reset-password -u elastic

在这里插入图片描述

1.es的访问

使用URL访问

将用户名和密码拼接到 URL 中的格式为:

http://{username}:{password}@{host}:{port}/{api_path}

在这里插入图片描述

2.mapping的理解

Dynamic Mapping

如果创建的索引没有预先设计好的mapping,那么写入数据的时候会自动创建mapping。

dynamic: true

  • 写入{"new_field": "test"}时,若new_field未在Mapping中定义,ES会自动将其类型推断为text(主字段)和keyword(子字段)25。
  • 风险‌:可能导致“Mapping爆炸”(字段数量过多),影响集群性能和稳定性

dynamic: false

  • 新字段不会被索引,但数据会完整存储在_source中。
  • 结果‌:无法通过该字段进行搜索或聚合,但可通过_source获取原始值。
  • 适用场景‌:需保留原始数据但无需查询的场景,如日志存储

dynamic: strict

  • 写入包含未定义字段的文档会直接报错,数据无法入库。
  • 示例‌:返回错误提示"strict_dynamic_mapping_exception": "mapping set to strict"
  • 适用场景‌:需严格保证Mapping结构一致性的场景,如生产环境数据规范。

keyword 与 text的区别‌

基础定义与核心差异
特性text 类型keyword 类型
存储方式文本被分词器拆分后存储(如 "苹果手机"["苹果", "手机"]原样存储,不进行分词(如 "苹果手机" 整体存储)
查询场景支持全文搜索(模糊匹配、相似度排序)仅支持精确匹配、聚合、排序(如过滤状态码、分类标签)
分词处理默认使用标准分词器(可自定义如 ik_max_word不进行分词,视为单一词元
适用场景文章内容、商品描述等需模糊搜索的字段订单号、状态码、标签等需精确匹配的字段

keyword仅支持精准匹配

text支持模糊匹配

主字段,子字段

主字段支持模糊匹配,子字段支持精确查询

可以防止同一个字段创建连个独立字段

GET /products/_search {"query": {"match": { "product_name": "智能" }  // 主字段分词后匹配}
}GET /products/_search {"query": {"term": { "product_name.raw": "iPhone 15" }  // 子字段精确匹配},"sort": [{ "product_name.raw": "asc" }]        // 按原始值排序
}

创建mapping

post请求创建模板,_template/模板名称

http://elastic:daJW9J=9loZ+L5Xa1XHX@127.0.0.1:9200/_template/my_template

参数说明

{//模板名称,index会自动匹配"index_patterns": ["mytest*"],   "settings": {//主分片数//将索引数据水平拆分到多个物理分片,实现分布式存储并行计算//影响索引写入吞吐量,一旦创建不可修改//按照每片300GB设置,设置后无法修改"number_of_shards": 3,//副本分片数//创造冗余副本,数据容灾+负载均衡//读取优化,副本数越多,查询并发处理能力越强,会额外占用资源,数据同步延迟"number_of_replicas": 1,//全局启用 字段格式错误容忍机制,数据类型不匹配时候,丢弃匹配失败字段,非拒绝整个文档"index.mapping.ignore_malformed": true},"mappings": {// 动态映射控制// strict 严格模式 禁止未声明字段写入// true(默认)自动推断并扩展添加映射(可能导致索引膨胀)// false 忽略新字段,保留原始数据不会索引(仅存储,不能搜索)(映射级别)"dynamic": "strict","_source": {//控制是否存储原始json//true保留完整原始数据,支持数据更新、高亮显示、reindex 等操作//false不存储原始数据,节省存储空间,但无法通过 _update API 修改文档或使用"enabled": true,// 查询结果中不显示 filead1 和 filed2"excludes": ["filead1","filed2"], // 启用压缩 //"compress": true                  },//用于定义文档中每个字段的数据类型,存储规则和检索"properties": {//字段名"host_name": {//数据类型"type": "keyword",//当字段类型为keyword的字符串长度超过设定值时,该字段不会被索引//无法通过该字段搜索或聚合,每个中文每个字符几计为1"ignore_above": 256,//空值替换"null_value": "N/A"},"created_at": {"type": "date",//确保正确解析字符串或数值为时间戳"format": "yyyy-MM-dd HH:mm:ss",//字段兼容错误模式开启"ignore_malformed": true},"data_info": {"type": "text",        // 主字段用于分词全文搜索"analyzer": "ik_max_word",  "fields": {"keyword": {         // 子字段用于精确匹配"type": "keyword","ignore_above": 256}}},"data_info2": {"type": "text", "fields": { "raw": { "type": "keyword" } }}}}
}

插入模板

{"index_patterns": ["ldsx_test*"],   "settings": {"number_of_shards": 3,"number_of_replicas": 1,"index.mapping.ignore_malformed": true},"mappings": {"dynamic": "true","_source": {"enabled": "true"},"properties": {"data_name": {"type": "keyword","ignore_above": 256,"null_value": "N/A"},"created_at": {"type": "date","format": "yyyy-MM-dd HH:mm:ss","ignore_malformed": true},"data_info": {"type": "text", "fields": { "raw": { "type": "keyword" } }}}}
}

查看mapping列表

在这里插入图片描述

3.创建索引

已经创建模板后,索引根据模板名匹配mapping

http://elastic:daJW9J=9loZ+L5Xa1XHX@127.0.0.1:9200/要创建的索引名

在这里插入图片描述

如果创建索引无匹配模板创建时可以设置mapping

若未预先定义模板,索引会根据首次插入的数据自动推断字段类型,此时不会关联任何显式模板

在这里插入图片描述

mapping是空的

在这里插入图片描述

4.查看索引列表

http://elastic:daJW9J=9loZ+L5Xa1XHX@127.0.0.1:9200/_cat/indices

在这里插入图片描述

5.删除索引

http://elastic:daJW9J=9loZ+L5Xa1XHX@127.0.0.1:9200/索引名

在这里插入图片描述

6.添加数据

post请求添加

http://elastic:daJW9J=9loZ+L5Xa1XHX@127.0.0.1:9200/ldsx_test_2025.04.28/_doc{"data_name": "node6","created_at": "2025-04-28 15:05:31","data_info":"无足鸟自由的飞翔"
}

在这里插入图片描述

7.查询数据

get请求,查询数据

http://elastic:daJW9J=9loZ+L5Xa1XHX@127.0.0.1:9200/ldsx_test_2025.04.28/_search

控制返回条数

_search?size=1,size设置需要返回条数

http://elastic:daJW9J=9loZ+L5Xa1XHX@127.0.0.1:9200/ldsx_test_2025.04.28/_search?size=1

在这里插入图片描述

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

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

相关文章

玩转Docker | 使用Docker部署AI证件照工具

玩转Docker | 使用Docker部署AI证件照工具 前言一、HivisionIDPhotos介绍项目简介主要特点二、系统要求环境要求环境检查Docker版本检查检查操作系统版本三、部署HivisionIDPhotos服务下载镜像创建容器创建容器检查容器状态检查服务端口安全设置四、访问HivisionIDPhotos服务访…

【掌握 DDL】:SQL 中的数据库与表管理

掌握 DDL:SQL 中的数据库与表管理 掌握 DDL:SQL 中的数据库与表管理数据库 DDL创建数据库查看数据库查看所有数据库查看数据库创建语句 进入数据库删除数据库备份数据库备份恢复 查看数据库连接深入理解数据库创建与删除数据库字符集与校验规则 表 DLL创…

基于「骑手外卖系统」串联7大设计原则

你说得对!这些设计原则听起来都很抽象、很“玄”,如果不是实际开发过系统,很难理解“到底为什么要这样设计”。 那我现在就用一个你能想象得很清楚的真实例子,帮你把这7个设计原则一一落地到具体情境里,你会一眼明白。…

基于轻量化YOLO的车载设备实时视频目标检测方案

一、背景与需求 在智能汽车后装市场,设备的视觉感知能力日益成为差异化竞争点。传统后装产品主要关注车辆诊断和位置跟踪,但在智能辅助驾驶(ADAS)与车联网(V2X)大潮下,如果能在已有硬件平台上新增“视频级行人、车辆、交通标志检测”功能,不仅可提升安全预警,也能为后…

HTTPS协议:更安全的HTTP

目录 1. 前言 2. HTTP 与 HTTPS:安全的分水岭 2.1 HTTP 的安全隐患 2.2 HTTPS 的安全提升 3. HTTPS 的核心概念 3.1 加密三剑客:对称加密、非对称加密与哈希算法 3.2 SSL/TLS 握手过程:建立安全通道的关键步骤 3.3 数字证书&#xff…

使用 Go 和 Gorgonia 实现图像验证码识别系统

本文将介绍如何使用 Go 语言结合 Gorgonia 构建一个简单的图像验证码识别模型。Gorgonia 是一个专为机器学习打造的计算图库,在 Go 中支持自动微分与深度学习构建。 1. 项目依赖 首先安装 Go 语言环境和 Gorgonia: 登录后复制 go install gorgonia.org/g…

list的两种设计

1. 内存布局对比 (1) MSVC 的实现 cpp class _List_node {_List_node* _Next; // 指向下一个节点_List_node* _Prev; // 指向前一个节点_Value_type _Value; // 存储的数据 }; 特点: 每个节点包含两个指针和一个数据成员。 Debug 模式:可能添加迭代…

多多铃声 7.4| 拥有丰富的铃声曲库,满足不同用户的个性化需求,支持一键设置手机铃声

多多铃声是一款提供丰富铃声资源的应用程序,它拥有广泛的铃声曲库,涵盖各种风格和类型,能够满足不同用户的个性化需求。该应用程序支持分类浏览和热门榜单功能,让用户可以轻松找到当前最流行或自己感兴趣的铃声。此次分享的版本为…

Day04 新增套餐

###今天的任务主要是自主完成套餐管理的模块### 1.新增套餐 在前端页面接口中我们可以看到在新增套餐的时候需要选择添加到菜单中的菜品 因此我们需要设计一个接口可以通过根据分类id(category_id)来查询该分类下的菜品 1.1根据分类id查询分类下的菜…

数据赋能(208)——质量管理——及时性原则

概述 在数据处理、分析和应用过程中,数据及时性原则确保了数据在需要时能够迅速、准确地被获取、更新和传递,为决策和业务需求提供了时效性保障。能够反映当前的真实状况,为决策提供最新、最准确的信息支持。这种及时性不仅有助于企业快速响…

华为OD机试真题——告警抑制(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现

2025 A卷 100分 题型 本专栏内全部题目均提供Java、python、JavaScript、C、C、GO六种语言的最佳实现方式; 并且每种语言均涵盖详细的问题分析、解题思路、代码实现、代码详解、3个测试用例以及综合分析; 本文收录于专栏:《2025华为OD真题目录…

ASP.NET MVC​ 入门指南四

21. 高级路由配置 21.1 自定义路由约束 除了使用默认的路由约束,你还可以创建自定义路由约束。自定义路由约束允许你根据特定的业务逻辑来决定一个路由是否匹配。例如,创建一个只允许特定年份的路由约束: csharp public class YearRouteCo…

测试基础笔记第十八天

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 一、web自动化1.xpath定位1.属性定位2.属性与逻辑结合3.属性和层级结合 2.常见元素定位方法(面试题)3.常见元素定位失败原因4.cookie1.验证码…

(笔记)List

一、List的介绍和使用 1.List的介绍 1.1 list是可以在任意常数范围内插入和删除的序列式容器,并且该容器可以前后双向迭代。 1.2 list底层是双向链表结构,双向链表中每个元素都储存在互不相关的独立节点中,在节点中通过指针指向前其前一个…

重载和覆写有什么区别?

重载(Overload)和覆写(Override,也叫重写 )是面向对象编程中的重要概念,它们有以下区别: 定义 - 重载:在同一类中,允许存在多个方法名相同,但参数列表&#x…

flask 获取各种请求数据:GET form-data x-www-form-urlencoded JSON headers 上传文件

在 Flask 里,能使用多种方法获取不同类型的请求数据,下面详细介绍常见请求数据的获取方式。 获取查询字符串参数(GET 请求) 查询字符串参数一般在 URL 里,以 ?key1value1&key2value2 这种形式存在。可通过 requ…

人工智能助力工业制造:迈向智能制造的未来

在当今数字化转型的浪潮中,人工智能(AI)技术正逐渐成为推动工业制造领域变革的核心力量。智能制造作为工业 4.0 的重要组成部分,通过将 AI 技术与传统制造工艺深度融合,正在重塑整个生产流程,提高生产效率、…

【java八股文】深入浅出synchronized优化原理

🔍 开发者资源导航 🔍🏷️ 博客主页: 个人主页📚 专栏订阅: JavaEE全栈专栏 synchronized优化原理 synchronized即使悲观锁也是乐观锁,拥有自适应性。 jvm内部会统计每个锁的竞争激烈程度&…

生成式 AI 的重要性

在科技飞速发展的今天,我们正站在一个前所未有的变革节点上。生成式 AI,宛如一颗突然划破夜空的耀眼流星,以其强大的创造力和无限的可能性,迅速成为全球瞩目的焦点。它究竟有何等魔力,能在如此短的时间内引发如此巨大的轰动?这背后又隐藏着怎样的时代密码,等待着我们去解…

生成式 AI 的阐释

在科技浪潮的汹涌推动下,一个全新的时代正以前所未有的速度向我们奔来,生成式 AI 无疑是这股浪潮中最耀眼的浪尖。它究竟是什么?又将如何重塑我们的世界?这不仅是科技爱好者们热衷探讨的话题,更是关乎每一个人未来发展的重要命题。 生成式 AI,从本质上来说,是一种能够自…