ElasticSearch简介及常用操作指南

一. ElasticSearch简介

ElasticSearch 是一个基于 Lucene 构建的开源、分布式、RESTful 风格的搜索和分析引擎。

ElasticSearch

1. 核心功能

  • 强大的搜索能力

    • 它能够提供全文检索功能。例如,在海量的文档数据中,可以快速准确地查找到包含特定关键词的文档。这在处理诸如电商产品目录(可以按照产品名称等文本内容搜索)、新闻文章数据库(能依据标题或正文关键词检索新闻)等场景下非常有用。
    • 支持多种搜索方式,如简单搜索、短语搜索、模糊搜索等。模糊搜索可以处理用户输入的拼写错误等情况,并且还能进行通配符搜索,像在搜索框中输入 “comput*” 就可以匹配到 “computer”“computing” 等词。
  • 数据分析功能强大

    • 可以执行聚合操作,对数据进行统计分析。比如在电商销售数据中,通过聚合操作可以计算出不同产品的销售额总和、平均销售额,或者按地域统计订单数量等。这些聚合操作可以帮助企业进行商业智能分析,了解业务发展趋势和用户行为模式。
  • 高性能

    • ElasticSearch 采用倒排索引的原理,这是一种非常高效的文本检索数据结构。并且它是分布式系统,能够将数据分散存储在多个节点上,这样在搜索和分析时可以充分利用多台服务器的资源,提高查询速度。例如,在一个大型的互联网公司中,面对海量的用户日志数据,ElasticSearch 可以快速响应查询请求,几乎不影响用户体验。
  • 高扩展性和高可用性

    • 它很容易进行横向扩展,可以通过添加新的节点来增加系统的处理能力和存储容量。同时,它具有副本机制,可以确保数据的安全性和高可用性。即使某个节点出现故障,数据也不会丢失,其他节点可以继续提供服务。这对于关键业务系统,如金融交易系统中的数据存储和查询来说至关重要,能够保证业务的连续性。

2. 应用场景

  • 日志分析

    • 在企业的 IT 基础设施中,服务器、应用程序等会产生大量的日志。ElasticSearch 可以收集、存储和分析这些日志数据,帮助运维人员快速定位系统故障。例如,通过分析 Web 服务器的日志,可以找出访问量高峰时段、响应时间过长的页面等信息,从而优化服务器性能。
  • 企业搜索

    • 可以将企业的内部文档(如员工手册、项目文档等)、知识库等数据整合到 ElasticSearch 中。员工可以通过简单易用的搜索界面快速找到所需信息,提高工作效率。比如,在大型律师事务所中,律师可以利用它快速检索相关的法律案例文件。
  • 电商搜索和推荐系统

    • 对于电商平台,ElasticSearch 可以提供强大的商品搜索功能。它能够根据用户的搜索词,快速返回匹配的商品列表,并且结合用户的行为数据(如浏览历史、购买记录等)进行个性化推荐。例如,当用户搜索 “运动鞋” 时,可以准确地展示各种品牌、型号的运动鞋,并且根据用户的偏好推荐相关的篮球鞋、跑步鞋等。

二. 常用操作命令

1. 创建索引

PUT http://<主机IP地址>:9200/<索引名称>

PUT http://10.0.1.2:9200/company

{
    "settings": {
        // 将主分片数量
        "number_of_shards": 10,
        // 设置副本数量
        "number_of_replicas": 1
    }
}

2. 检索索引信息

GET http://<主机IP地址>:9200/<索引名称>

3. 删除索引信息

DELETE http://<主机IP地址>:9200/<索引名称>

4. 文档操作

4.1 新增文档,并指定ID

POST http://<主机IP地址>:9200/<索引名称>/_doc/<文档ID>

POST http://10.0.1.2:9200/company/_doc/123412341415

{
    "company_name": "百胜中国有限公司",
    "legal_name": "张三",
    "tags": ["供应链管理", "餐饮服务"]
}
4.2 新增文档,不指定文档ID,系统采用随机文档ID

POST http://<主机IP地址>:9200/<索引名称>/_doc

POST http://10.0.1.2:9200/company/_doc

{
    "company_name": "百胜中国有限公司",
    "legal_name": "张三",
    "tags": ["供应链管理", "餐饮服务"]
}
4.3 获取指定文档信息

GET http://<主机IP地址>:9200/<索引名称>/_doc/<文档ID>

GET http://10.0.1.2:9200/company/_doc/123412341415
4.4 更新文档

PUT http://<主机IP地址>:9200/<索引名称>/_doc/<文档ID>

PUT http://10.0.1.2:9200/company/_doc/123412341415

{   
    "doc": {
        "legal_name": "李四",
        "tags": ["供应链管理", "餐饮服务", "数字供应链"]
    }
}
4.5 删除文档

DELETE http://<主机IP地址>:9200/<索引名称>/_doc/<文档ID>

5. 查看所有的文档列表

GET http://<主机IP地址>:9200/_cat/indices?v

GET http://10.0.1.2:9200/_cat/indices?v

6. 查询

6.1 匹配查询

GET http://<主机IP地址>:9200/<索引名称>/_search

GET http://10.0.1.2:9200/company/_search?pretty

{
   
   
    "query": {
   
   
        "match": {
   
   
            "legal_name": "李四"
        }
    }   
}

match查询:

    <
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

EconoBytes

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值