美文网首页Java经典收藏程序员
Elasticsearch中文搜索环境搭建

Elasticsearch中文搜索环境搭建

作者: 木鸟飞鱼 | 来源:发表于2016-05-17 22:50 被阅读2990次

    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" : ["<tag1>", "<tag2>"],
                  "post_tags" : ["</tag1>", "</tag2>"],
                  "fields" : {
                      "content" : {}
                  }
              }
          }'
        

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

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

       go get gopkg.in/olivere/elastic.v3

    相关文章

      网友评论

        本文标题:Elasticsearch中文搜索环境搭建

        本文链接:https://www.haomeiwen.com/subject/mzwirttx.html