0%

mac下安装使用Elasticsearch

学习并不等于认识,有学问的人和能认识的人是不同的。记忆造就了前者,哲学造就了后者。 —— 大仲马 《基督山伯爵》

一、概念

      Elasticsearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口。它是一个分布式、高扩展、高实时的搜索与数据分析引擎。它能很方便的使大量数据具有搜索、分析和探索的能力。充分利用ElasticSearch的水平伸缩性,能使数据在生产环境变得更有价值。

      Elasticsearch是用Java语言开发的,并作为Apache许可条款下的开放源码发布,是一种流行的企业级搜索引擎。ElasticSearch用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。官方客户端在Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby和许多其他语言中都是可用的。

根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr,也是基于Lucene。

原理

  • 用户将数据提交到Elastic Search数据库中
  • 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据
  • 当用户搜索数据时候,再根据权重将结果排名,打分,并将返回结果呈现给用户

二、安装使用

  1. 源码安装

    • 官网下载

    • 选择对应的环境

    • 下载完成后解压到某个目录,如/usr/local/elk-es-7.4.0

    • 进入安装目录并启动cd /usr/local/elk-es-7.4.0/bin && ./elasticsearch

      • 报错,一般都是权限问题,修改目录权限sudo chown -R user:group /usr/local/es
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      ./elasticsearch
      Exception in thread "main" java.nio.file.AccessDeniedException: /usr/local/elk-es-7.4.0/config/jvm.options
      at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:90)
      at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
      at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:116)
      at java.base/sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:219)
      at java.base/java.nio.file.Files.newByteChannel(Files.java:374)
      at java.base/java.nio.file.Files.newByteChannel(Files.java:425)
      at java.base/java.nio.file.spi.FileSystemProvider.newInputStream(FileSystemProvider.java:420)
      at java.base/java.nio.file.Files.newInputStream(Files.java:159)
      at org.elasticsearch.tools.launchers.JvmOptionsParser.main(JvmOptionsParser.java:61)
    • 访问:localhost:9200,有如下输出则表示安装成功

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     {
    "name" : "xxxxx",
    "cluster_name" : "elasticsearch",
    "cluster_uuid" : "RqiPZ9ehTJ-JNeHv80p4cQ",
    "version" : {
    "number" : "7.4.0",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "22e1767283e61a198cb4db791ea66e3f11ab9910",
    "build_date" : "2019-09-27T08:36:48.569419Z",
    "build_snapshot" : false,
    "lucene_version" : "8.2.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
    },
    "tagline" : "You Know, for Search"
    }
  2. brew安装

    • 添加安装源 brew tap elastic/tap
    • 开始安装 brew install elastic/tap/elasticsearch-full
    1
    2
    3
    启动 brew service start elasticsearch
    关闭 brew service stop elasticsearch
    重启 brew service restart elasticsearch

brew tap讲解

  1. brew tap可以为brew的软件的跟踪、更新、安装添加更多的的tap formulae,该命令的仓库源默认来至于Github。
  2. 相关命令
    • brew tap <user>/<repo>:在本地对这个https://github.com/user/repo仓库上做了一个浅度的克隆,完成后即可正常install/uninstall
    • brew tap <user>/<repo> URL:在本地对这个URL仓库上做了一个浅度的克隆(仓库不一定是github)
    • brew untap <user>/<repo> [<user>/<repo> <user>/<repo> ...]:移除已经安装的tap

三、参考

  1. 参考一
  2. 参考二