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

Elastic Search 的安装、使用方式

1.Elastic Search

        elasticsearch是一款非常强大的开源搜索引擎,支持的功能非常多。数据库模糊查询随着表数据量的增多,查询性能的下降会非常明显,而搜索引擎的性能则不会随着数据增多而下降太多。目前仅10万不到的数据量差距就如此明显,如果数据量达到百万、千万、甚至上亿级别,这个性能差距会非常夸张。数据库的模糊搜索功能单一,匹配条件非常苛刻,必须恰好包含用户搜索的关键字。而在搜索引擎中,用户输入出现个别错字,或者用拼音搜索、同义词搜索都能正确匹配到数据。

  • Elasticsearch:用于数据存储、计算和搜索

  • Logstash/Beats:用于数据收集

  • Kibana:用于数据可视化

整套技术栈被称为ELK,经常用来做日志收集、系统监控和状态分析等等

2.es安装

在docker环境中拉取镜像,如果镜像拉取困难,我已经提供好了镜像tar包,可以直接下载

通过网盘分享的文件:kibana.tar等2个文件
链接: https://pan.baidu.com/s/15BwRa6wBfosRjeggmRzAvw?pwd=0218 提取码: 0218

执行命令

# 加载es镜像
docker load -i es.tar
# 加载kibana镜像
docker load -i kibana

创建容器

注意两个容器要处于同一个网络

# 创建es容器
docker run -d \--name es \-e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \-e "discovery.type=single-node" \-v es-data:/usr/share/elasticsearch/data \-v es-plugins:/usr/share/elasticsearch/plugins \--privileged \--network net \ # 你的网络名称-p 9200:9200 \-p 9300:9300 \elasticsearch:7.12.1# 创建kibana容器
docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
--network=net \  # 你的网络名称
-p 5601:5601  \
kibana:7.12.1

启动容器

docker start es
docker start kibana

 kibana是es的可视化插件,它会自动代理到es的端口

浏览器访问 宿主机的5601端口

点击 Explorer on my own

 点击 Dev tools

进入操作界面即可进行使用

3.使用方式

          elastic是一款分布式搜索引擎,通过倒排索引的方式,可以优化复杂的条件查询的效率。我是使用的docker环境进行的部署es,首先就是要拉取es的镜像,以及图形化界面kibana的镜像,然后进行构建。在项目中引入相关依赖,就可以进行使用了

          创建索引:

PUT /products
{"settings": { "number_of_shards": 1, "number_of_replicas": 0 },"mappings": {"properties": {"title": { "type": "keyword" },"price": { "type": "double" },"description": { "type": "text" }}}
}

          查询与删除索引

  • GET /_cat/indices?v 查看所有索引。

  • DELETE /products 删除指定索引

         添加文档:

POST /products/_doc/1  (指定id)
{ "title": "iphone13", "price": 8999.99 }

         更新文档:

        全量替换(PUT)或局部更新(POST /_update

POST /products/_doc/1/_update
{ "doc": { "title": "iPhone15" } }

 

        全文搜索(match

        适用于 text 类型字段,支持分词,类似 SQL 的 LIKE 操作

GET /article/_search
{"query": { "match": { "title": "ES教程" } }
}

        精确匹配(term

        针对 keyword 或数值类型字段,不进行分词 

GET /order/_search
{"query": { "term": { "order_no": "20240315001" } }
}

        范围查询(range

        支持 gt(>)、gte(>=)、lt(<)、lte(<=)参数 

GET /order/_search
{"query": { "range": { "price": { "gte": 100, "lte": 500 } } }
}

        布尔组合查询(bool

        通过 must(AND)、should(OR)、must_not(NOT)组合条件 

GET /order/_search
{"query": {"bool": {"must": [ { "term": { "status": "paid" } }, { "range": { "price": { "gte": 100 } } } ]}}
}

以上是es中几种简单的使用方式,同样es还支持更多更高级的用法,可详见

Elasticsearch:官方分布式搜索和分析引擎 | Elastic

http://www.xdnf.cn/news/3249.html

相关文章:

  • 【分享】deepseek 超强ai助手 1.1.8最新版 不卡顿
  • Python字典(dict)详解:从创建到操作全掌握
  • Anaconda中配置Pyspark的Spark开发环境
  • 使用listPersonalCertificates 命令列示WebSphere Application Server特定密钥库中的个人证书
  • 【Android】四大组件之ContentProvider
  • 比较图检索增强生成(Graph RAG)和向量检索增强生成(Vector RAG)
  • L3-041 影响力
  • 如何在Cursor中使用MCP服务
  • Leetcode刷题记录24——最大子数组和
  • Java SE(6)——类和对象
  • 数据库 AI 助手测评:Chat2DB、SQLFlow 等工具如何提升开发效率?
  • 手搓传染病模型(SEIAR)
  • python3GUI--视频监控管理平台 By:PyQt5(详细讲解)
  • 多商户商城系统开发全策略:从技术架构到流量增长
  • python如何word转pdf
  • Node.js心得笔记
  • 前端八股 6
  • Redis ⑧-RESP | 渐进式遍历 | 数据库管理
  • 移动光猫 UNG853H 获取超级管理员账号密码
  • 2025东三省C题深圳杯C题数学建模挑战赛数模思路代码文章教学: 分布式能源接入配电网的风险分析
  • 支持selenium的chrome driver更新到136.0.7103.49
  • 2025年一加7pro刷twpr / magisk / kali nethunter教程+资源下载+避坑指南
  • ZYNQ 纯PL端逻辑资源程序固化流程
  • AM剪辑软件汉化版:简单易用,开启视频创作之旅
  • 5G技术如何提升智能家居体验:让家更聪明,生活更智能
  • Kubernetes(k8s)的API Server 组件原理与结合生产实战教程
  • 上位机知识篇---ARM 汇编语言与寄存器深度讨论
  • 【工具】Windows批量文件复制教程:用BAT脚本自动化文件管理
  • UDP数据包和TCP数据包的区别;网络编程套接字;不同协议的回显服务器
  • Android短信监控技术实现:合法合规的远程采集方案