当前位置: 首页 > news >正文

Windows 安装和使用 ElasticSearch

1. ElasticSearch

1.1 ES

(1)ES 是一个开源的分布式搜索和分析引擎,专为处理大模型数据而设计,它能够实现近乎实时的数据检索、分析和可视化,广泛用于全文搜索、日志分析和监控(RLK Stack)、数据分析等领域。

(2)核心概念

Index(索引)

类似数据库中的“表”

Document(文档)

类似数据库中的“行”,JSON格式数据

Shard(分片)

索引被分割成多个分片,分片可分布在不同节点上

Replica(副本)

分片的备份

Mapping(映射)

定义文档的字段及类型

1.2 MYSQL 和 ElasticSearch 对比

MYSQL

Database(数据库)

Row(行)

Column(列)

ElasticSearch

Index(索引)

Document(文档)

Fileds(字段)

1.3 ES 数据类型

数据类型

 

字符串

text

全文搜索(如文章内容、描述),支持分词、模糊匹配,不适合排序和聚合

keyword

精确匹配(如状态码、标签、ID),不分词,适合过滤、排序和聚合

数值

long / integer(整数)

double / float(浮点数)

 

日期

date

 

布尔

boolean

true / false

二进制

binary

存储Base64编码的二进制数据(如图片)

对象

object

JSON对象

嵌套

nested

对象数组

地理

geo_point

经纬度坐标

geo_shape

复杂地理形状(如多边形区域)

数组

[ ]

存储同类型多值

2. 下载

ElasticSearch:Download Elasticsearch | Elastic

Kibana可视化平台:Download Kibana Free | Get Started Now | Elastic

3. 启动

3.1 启动ElasticSearch

第一次启动会初始化一个密码,用户名:elastic。

如果忘记密码,使用命令重置密码:elasticsearch-reset-password -u elastic

注意要保存新密码

3.2 启动 Kibana(先修改配置文件,再启动)

4. 正排索引和倒排索引

4.1 正排索引(id 映射 内容)

id

content

100

华为 Mate 60 手机

101

iPhone 16 手机

102

小米汽车

4.2 倒排索引(分词 映射 id)

keyword

id

手机

100,101

华为

100

iPhone

101

汽车

102

5. Index 索引(使用 PostMan 请求)

5.1 新增 goods 索引( PUT )

// number_of_shards: 定义了索引的主分片数量。数据会被分成几个分片(shard)
// number_of_replicas: 定义了每个主分片的副本数量。主分片的备份数
// mappings: 定义了索引中存储的文档的字段及其数据类型

{
  "settings": {
    "number_of_shards": 1,
    "number_of_replicas": 1
  },
  "mappings": {
    "properties": {
      "goods_name": { "type": "text" },
      "price": { "type": "float" },
      "created_time": { "type": "date","format": "yyyy-MM-dd HH:mm:ss" }
    }
  }
}

5.2 查询 goods 索引( GET )

5.3 删除 goods 索引( DELETE )

6. Document 文档

6.1 新增 Document( POST _doc )

{
    "goods_name": "西瓜",
    "price": 19.9,
    "created_time": "2025-03-24 21:00:00"
}

6.2 根据 id 查询 Document( GET _doc )

6.3 根据 id 局部更新 Document( POST _update )

验证局部更新

6.4 根据 id 删除 Document( DELETE _doc )

6.5 查询

6.5.1 查询 goods 所有 Document( GET _search )

6.5.2 条件查询 goods 的 Document 内容( GET _search )

{
    "query":{
        "match":{
            "goods_name": "香蕉"
        }
    },
    "_source": ["price"]
}

6.5.3 分页查询 goods 所有 Document 内容( GET _search )

6.5.4 排序查询 goods 所有 Document 内容( GET _search )( desc:降序,asc:升序 )

{
    "sort": {
        "price":{
            "order": "desc"
        }
    }
}

6.5.5 多条件查询 goods 所有 Document 内容( GET _search )

{
    "query":{
        "bool":{
            "must":[
                { "match":{ "goods_name":"西瓜" } },
                { "match":{ "price":19.9 } }
            ]
        }
    }
}

6.5.6 范围查找 goods 所有 Document 内容( GET _search )

6.5.7 全文检索 && 精确匹配 && 高亮显示 ( GET _search )

6.5.8 聚合查询 ( GET _search )

(1)平局值(avg)

(2)求和(sum)

(3)最大值/最小值(max/min)

(4)统计汇总(stats)

7. 分词器

Standard(单字分词)

standard

中,华,人,民,共,和,国,国,歌

IK(中文词库分词)

ik_smart(最少切分)

中华人民共和国,国歌

ik_max_word(最细粒度划分)

中华人民共和国。中华人民,中华,华人,人民...

7.1 下载 IK 中文分词器

Index of: analysis-ik/stable/

7.2 使用 IK 分词器

7.3 自定义分词 (词库没有“敖丙”,所以要自定义分词)

 

http://www.dtcms.com/a/112403.html

相关文章:

  • Git提交本地项目到Github
  • vue+form实现flappybird
  • 迅饶科技X2Modbus网关-GetUser信息泄露漏洞
  • Mysql 中 B 树 vs B+ 树
  • SQL Server 2022 脏读问题排查与思考
  • HTML5 vs HTML 和 CSS3 vs CSS:全面对比
  • Spring Boot 中使用 Redis:从入门到实战
  • Websoft9分享:在数字化转型中选择开源软件可能遇到的难题
  • 神经网络能不能完全拟合y=x² ???
  • WinForm真入门(7)——Button控件详解
  • 京东运维面试题及参考答案
  • k8s进阶之路:本地集群环境搭建
  • 谷歌 Gemini 2.5 Pro 免费开放
  • 24、 Python Socket编程:从协议解析到多线程实战
  • 如何完整迁移 Git 仓库 ?
  • yum list查询时部分包查找不到流程分析
  • 54.大学生心理健康管理系统(基于springboot项目)
  • 有人DTU使用MQTT协议控制Modbus协议的下位机-含数据库
  • Redis分布式锁详解
  • AWS Langfuse AI用Bedrock模型使用完全教程
  • 【万字总结】前端全方位性能优化指南(八)——Webpack 6调优、模块联邦升级、Tree Shaking突破
  • 安卓离线畅玩的多款棋类单机游戏推荐
  • 【leetcode100】动态规划Java版本
  • Debezium日常分享系列之:Debezium 3.1.0.Final发布
  • 什么是量子计算?
  • 【代码艺廊】pyside6桌面应用范例:homemade-toolset
  • 如何实现浏览器中的报表打印
  • Pytorch使用GPU、CUDA安装步骤注意事项
  • Redis 中 Set(例如标签) 和 ZSet(例如排行榜) 的详细对比,涵盖定义、特性、命令、适用场景及总结表格
  • CSS 创建与使用学习笔记