博客
关于我
没错,你离分布式搜索只差一个Elasticsearch入门!
阅读量:353 次
发布时间:2019-03-04

本文共 2125 字,大约阅读时间需要 7 分钟。

Elasticsearch 入门指南:从零到hero

作为一名技术博主,我对 Elasticsearch 的了解主要停留在“这个东西能做搜索”这一层面。然而,公司最近提出了对商品搜索系统的升级需求,这让我不得不深入了解 Elasticsearch。经过一些调研和学习,我决定写一篇入门文章,分享自己的摸索过程。

一、为什么选择 Elasticsearch?

Elasticsearch 并非一款普通的搜索引擎,它是一个分布式、RESTful 风格的搜索和数据分析引擎。作为 Elastic Stack 的核心,它不仅能高效处理海量数据,还能在数据中发现意料之外的模式。这种能力在电商系统中尤为重要,能够提升用户体验和商城的竞争力。

二、Elasticsearch 的核心架构

Elasticsearch 属于 Elastic Stack 的一部分,完整的架构包括 Elasticsearch、Kibana、Logstash 等组件。Elasticsearch 负责数据存储和检索,Kibana 则提供可视化界面,Logstash 负责数据收集等。理解这些组件的协同工作是掌握 Elasticsearch 的关键。

三、安装 Elasticsearch

安装 Elasticsearch 相对简单,但需要注意以下几点:

  • 环境要求:Elasticsearch 由 Java 开发,建议安装 JDK(版本不低于 8)。最新版本的 Elasticsearch 7.6.2 已内置 Java 环境,下载后直接解压即可。

  • 默认配置:下载完成后,双击 elasticsearch.bat 文件启动服务。默认配置下,Elasticsearch 会占用 9200 端口。

  • 验证启动:启动完成后访问 http://localhost:9200 检查是否成功。

  • 停止服务:可以通过 Ctrl+C 停止服务。

  • 四、安装 Kibana

    Kibana 是 Elasticsearch 的可视化界面,安装步骤类似:

  • 下载 Kibana 的 Windows 版本,解压后运行 kibana.bat 文件。

  • 访问 http://localhost:5601 查看界面。

  • 使用 Kibana 对 Elasticsearch 数据进行可视化分析。

  • 五、Elasticsearch 的核心概念

    在实际操作前,掌握以下概念是必不可少的:

  • 索引(Index):相当于 MySQL 的数据库,用于存储数据的集合。

  • 类型(Type):类似于表,定义文档的结构。常用类型有 text(全文检索)、keyword(关键词)、number(数值型)等。

  • 文档(Document):存储的实际数据单位,采用 JSON 格式。

  • 六、Java 客户端的使用

    如果你是 Java 开发者,可以通过 Elasticsearch 的 RESTful API 进行交互。以下是简单的 Java 客户端示例:

    RestHighLevelClient client = new RestHighLevelClient(    RestClient.builder(new HttpHost("localhost", 9200, "http")));// 添加数据IndexRequest indexRequest = new IndexRequest("writer")    .id("1")    .source("name", "沉默王二", "age", 18, "memo", "一枚有趣的程序员");client.index(indexRequest, RequestOptions.DEFAULT);// 查询数据GetRequest getRequest = new GetRequest("writer", "1");GetResponse getResponse = client.get(getRequest, RequestOptions.DEFAULT);String sourceAsString = getResponse.getSourceAsString();System.out.println(sourceAsString);

    七、实战演练

    通过以上代码,你已经成功将数据添加到 Elasticsearch 并进行了查询。为了进一步体验,可以通过 Kibana Dev Tools 面板执行以下查询:

    GET /writer/_search{  "query": {    "term": {      "name": "沉默王二"    }  }}

    八、总结与展望

    Elasticsearch 的学习过程充满了挑战,但也充满了收获。从安装到实战,每一步都让我对这款强大的搜索引擎有了更深刻的理解。对于刚入门的小伙伴来说,实践是最好的学习方式,我也希望大家能通过这篇文章,勇敢地走进 Elasticsearch 的世界。

    如果你对 Elasticsearch 还有其他疑问,或者想了解更多实战技巧,欢迎在评论区留言交流。毕竟,我们都是技术路上行的小白,共同学习、共同进步才是最重要的!

    转载地址:http://bnxe.baihongyu.com/

    你可能感兴趣的文章
    opencv之namedWindow,imshow出现两个窗口
    查看>>
    opencv之模糊处理
    查看>>
    Opencv介绍及opencv3.0在 vs2010上的配置
    查看>>
    OpenCV使用霍夫变换检测图像中的形状
    查看>>
    opencv保存图片路径包含中文乱码解决方案
    查看>>
    OpenCV保证输入图像为三通道
    查看>>
    OpenCV入门教程(非常详细)从零基础入门到精通,看完这一篇就够了
    查看>>
    opencv图像分割2-GMM
    查看>>
    opencv图像分割3-分水岭方法
    查看>>
    opencv图像切割1-KMeans方法
    查看>>
    OpenCV图像处理篇之阈值操作函数
    查看>>
    opencv图像特征融合-seamlessClone
    查看>>
    OpenCV图像的深浅拷贝
    查看>>
    OpenCV在Google Colboratory中不起作用
    查看>>
    OpenCV学习(13) 细化算法(1)(转)
    查看>>
    OpenCV学习笔记(27)KAZE 算法原理与源码分析(一)非线性扩散滤波
    查看>>
    OpenCV学堂 | CV开发者必须懂的9种距离度量方法,内含欧氏距离、切比雪夫距离等(建议收藏)
    查看>>
    OpenCV学堂 | OpenCV中支持的人脸检测方法整理与汇总
    查看>>
    OpenCV学堂 | OpenCV案例 | 基于轮廓分析对象提取
    查看>>
    OpenCV学堂 | YOLOv8与YOLO11自定义数据集迁移学习效果对比
    查看>>