博客
关于我
没错,你离分布式搜索只差一个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/

    你可能感兴趣的文章
    Qt开发——网络编程之UDP客户端
    查看>>
    postgis数据库优化_postgresql 性能优化
    查看>>
    postgis求面积、交集等相关函数
    查看>>
    postgis相关函数
    查看>>
    Postgres Docker版本安装mysql_fdw 插件
    查看>>
    Postgres invalid command \N数据恢复处理
    查看>>
    Postgres like 模糊查询匹配集合
    查看>>
    Postgres 自定义函数内实现 in 操作符的递归查询
    查看>>
    Postgres 返回当前时间前后指定天数的集合
    查看>>
    postgres--vacuum
    查看>>
    postgres--wal
    查看>>
    postgres--流复制
    查看>>
    postgres10配置huge_pages
    查看>>
    PostgreSQL 10.0 preview sharding增强 - pushdown 增强
    查看>>
    PostgreSQL 10.0 preview 变化 - pg_xlog,pg_clog,pg_log目录更名为pg_wal,pg_xact,log
    查看>>
    PostgreSQL 10.1 手册_部分 II. SQL 语言_第 15章 并行查询_15.2. 何时会用到并行查询?...
    查看>>
    PostgreSQL 10.1 手册_部分 II. SQL 语言_第 9 章 函数和操作符_9.23. 行和数组比较
    查看>>
    PostgreSQL 10.1 手册_部分 III. 服务器管理_第 21 章 数据库角色
    查看>>
    Qt开发——网络编程UDP网络广播软件之服务器端
    查看>>
    Postgresql 12.9如何配置允许远程连接
    查看>>