Elasticsearch v5.4

Posted Leo_wlCnBlogs

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Elasticsearch v5.4相关的知识,希望对你有一定的参考价值。

前言

最近项目里为了加快后台系统的搜索速度,决定接入开源的搜索引擎,于是大家都在对比较常用的几个开源做技术调研,比如Lucene+盘龙分词Solr,还有本篇要介绍的Elasticsearch。话不多提,直接进入主题。

一、安装JDK

  1. 由于Elasticsearch v5.4.2需要Java 8或者更新版本的java,我们可以去Oracle官网下载,也可以选择使用OpenJDK
  2. 设置Java环境变量
    1. JAVA_HOME = C:\\Program Files (x86)\\Java\\jdk1.8.0_131
    2. CLASSPATH = .;%JAVA_HOME%\\lib;%JAVA_HOME%\\lib\\tools.jar
    3. PATH = 原PATH+;%JAVA_HOME%\\bin;
  3. 验证Java环境是否安装成功,以及环境变量是否设置正确。在cmd窗口执行javac命令,若结果如下图,则说明Java环境已经安装正确。
    Java环境安装成功

二、安装Elasticsearch

  1. 下载。从官网下载Elasticsearch zip4.入2.zip 。
  2. 解压文件。将下载的zip文件解压到C:\\elasticsearch\\elasticsearch-5.4.2/,目录结构如下图:
    目录结构
  3. 启动Elasticsearch 。打开cmd窗口,进入C:\\elasticsearch\\elasticsearch-5.4.2\\bin,执行脚本elasticsearch.bat,若结果如下图,则Elasticsearch 启动成功。
    启动Elasticsearch
  4. 验证Elasticsearch是否安装成功。如上图,Elasticsearch 默认使用的是9200端口,接下来在浏览器中打开链接http://localhost:9200,返回如下结果则说明安装成功。

    {
      "name" : "KPIXVlC",
      "cluster_name" : "elasticsearch",
      "cluster_uuid" : "uCSF389FQISmiuK3__BSHA",
      "version" : {
      "number" : "5.4.2",
      "build_hash" : "929b078",
      "build_date" : "2017-06-15T02:29:28.122Z",
      "build_snapshot" : false,
      "lucene_version" : "6.5.1"
      },
      "tagline" : "You Know, for Search"
    }

    验证Elasticsearch安装成功

三、安装Elasticsearch-Head

如下图,Elasticsearch Head在5.x版本中已经不再以插件的形式存在,而是作为了一个独立的web了。

  1. 安装

    // 从GitHug下载Head
    git clone git://github.com/mobz/elasticsearch-head.git
    // 进入下载好的目录
    cd elasticsearch-head
    // 还原nmp包
    npm install
    // 运行
    npm run start

  2. 验证。在浏览器中打开链接http://localhost:9100,如出现下图,则说明安装成功

四、安装ik分词器

  1. 下载。ik分词链接GitHub。由于ik分词器要求与Elasticsearch的版本高度匹配,所以我们需要下载相应的版本为5.4.2

    git clone --branch v5.4.2 https://github.com/medcl/elasticsearch-analysis-ik.git
  2. 打包。在下载好的文件夹中执行命令

    mvn package
  3. 解压。在Elasticsearch安装目录下的文件夹plugins中新建文件夹ik,将上一步中生成的elasticsearch-analysis-ik-5.4.2.zip解压到这里,如下图:

  4. 检验ik安装结果。重启Elasticsearch,在Sense插件中输入如下内容

    GET default-index/_analyze?analyzer=ik_smart&pretty=true
    {
    "text":"我的家乡是武汉,我爱美丽的江城"
    }

    如安装正常,结果如下

    {
       "tokens": [
      {
         "token": "我",
         "start_offset": 0,
         "end_offset": 1,
         "type": "CN_CHAR",
         "position": 0
      },
      {
         "token": "家乡",
         "start_offset": 2,
         "end_offset": 4,
         "type": "CN_WORD",
         "position": 1
      },
      {
         "token": "武汉",
         "start_offset": 5,
         "end_offset": 7,
         "type": "CN_WORD",
         "position": 2
      },
      {
         "token": "我",
         "start_offset": 8,
         "end_offset": 9,
         "type": "CN_CHAR",
         "position": 3
      },
      {
         "token": "爱美丽",
         "start_offset": 9,
         "end_offset": 12,
         "type": "CN_WORD",
         "position": 4
      },
      {
         "token": "江城",
         "start_offset": 13,
         "end_offset": 15,
         "type": "CN_WORD",
         "position": 5
      }
       ]
    }

到此Elasticsearch,Elasticsearch Head, ik分词器都已经安装成功。

注意:安装ik分词器过程中发现与老版本2.x.x有两点不同:

  1. 不需要修改Elasticsearch配置文件。Elasticsearch的配置文件路径为elasticsearch.yml,在文件最后加入如下内容:index.analysis.analyzer.ik.type : "ik"
  2. 测试ik分词是否安装成功时,使用的是ik_smart而不是ik。查看文档,现在支持ik_smartik_max_word
 
分类: Elasticsearch

以上是关于Elasticsearch v5.4的主要内容,如果未能解决你的问题,请参考以下文章

ElasticSearch学习问题记录——Invalid shift value in prefixCoded bytes (is encoded value really an INT?)(代码片段

Elasticsearch笔记九之优化

d3.js v5.4.0 中的拖动问题

使用标准库Ruby将数据标记到Elasticsearch批量中

漏洞公告 | Lua v5.4.0及之前版本lsys_load()栈溢出漏洞

FTI.v5.4.for.CATIA.V5R22-R25金属薄板软件