Elasticsearch中文搜索环境搭建

Elasticsearch是一个建立在全文搜索引擎 Apache Lucene™ 基础上的搜索引擎,功能强大,最近刚好要研究搜索这一块,简要记录备日后查阅

  1. 安装Java JDK,由于Lucene是用Java开发的,所以需要安装JVM

    • 从JAVA官网下载JDK安装包,注意,由于后面我们安装中文分词插件需要装maven,所以安装的必须是JDK包而不是JRE

    • 通过RPM -ivh 命令安装下好的安装包

    • 编辑配置文件,将安装好的java路径加入环境变量

      vim /etc/profile

      在里面添加如下内容

      export JAVA_HOME=/usr/java/your_jdk_directory(修改成对应的路径)
      export JAVA_BIN=$JAVA_HOME/bin
      export PATH=$PATH:$JAVA_HOME/bin
      export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
      export JAVA_HOME JAVA_BIN PATH CLASSPATH

      使配置文件生效

      source /etc/profile 或 #. /etc/profile (也可关闭终端重新登陆)

      如果出现以下类似的输出,证明安装成功

      #java -version
      java version "1.8.0_66"
      Java(TM) SE Runtime Environment (build 1.8.0_66-b17)
      Java HotSpot(TM) 64-Bit Server VM (build 25.66-b17, mixed mode)

  2. 安装elasticsearch

    • 从elasticsearch官网下载elasticsearch安装包

    • 将安装包放于要安装的目录,解压

      $unzip elasticsearch-2.3.2.zip

    • 启动看是否成功,注意不能用root用户

      $bin/elasticsearch

  3. 安装Marvel管理插件(选装)

    • 先从Kibana下载界面下载Kibana

    • 解压kibana,并修改配置文件,将elasticsearch路径指向上一步elasticsearch的访问路径,默认为 http://localhost:9200

    • 安装Marvel

      $bin/plugin install license
      $bin/plugin install marvel-agent
      $bin/kibana —install elasticsearch/marvel/latest
      $bin/elasticsearch
      $bin/kibana

  4. 安装中文分词插件elasticsearch-analysis-ik

    • 若未安装maven,需要先安装maven,可通过yum install maven, brew install maven等安装,也可下载源码解压后将bin目录加入PATH环境变量安装

    • 从github上下载elasticsearch-analysis-ik源码, 再通过maven打包,并将打好的包拷贝到plugins/ik目录下,解压

      $mvn package
      $cp target/releases/elasticsearch-analysis-ik-{version}.zip to your-es-root/plugins/ik
      $unzip target/releases/elasticsearch-analysis-ik-{version}.zip
      $bin/elasticsearch

    • 简单验证分词插件是否安装成功

      新建索引

      $curl -XPUT http://localhost:9200/index

      配置分词mapping

      $curl -XPOST http://localhost:9200/index/fulltext/_mapping -d'
      {
      "fulltext": {
      "_all": {
      "analyzer": "ik_max_word",
      "search_analyzer": "ik_max_word",
      "term_vector": "no",
      "store": "false"
      },
      "properties": {
      "content": {
      "type": "string",
      "store": "no",
      "term_vector": "with_positions_offsets",
      "analyzer": "ik_max_word",
      "search_analyzer": "ik_max_word",
      "include_in_all": "true",
      "boost": 8
      }
      }
      }
      }'

      加入文档

      $curl -XPOST http://localhost:9200/index/fulltext/1 -d'{"content":"美国留给伊拉克的是个烂摊子吗"}'
      $curl -XPOST http://localhost:9200/index/fulltext/2 -d'{"content":"公安部:各地校车将享最高路权"}'

      搜索

      $curl -XPOST http://localhost:9200/index/fulltext/_search -d'
      {
      "query" : { "term" : { "content" : "美国" }},
      "highlight" : {
      "pre_tags" : ["", ""],
      "post_tags" : ["
      ", ""],
      "fields" : {
      "content" : {}
      }
      }
      }'

      如果有搜索结果,证明中文分词插件已经安装成功

  5. 安装相应的客户端api,如golang客户端api

    go get gopkg.in/olivere/elastic.v3

posted @ 2016-06-25 14:32  木鸟飞鱼  阅读(675)  评论(0)    收藏  举报