文档章节

Elasticsearch中文搜索环境搭建

木鸟飞鱼
 木鸟飞鱼
发布于 2016/06/24 19:02
字数 682
阅读 32
收藏 3

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
    

© 著作权归作者所有

木鸟飞鱼
粉丝 3
博文 1
码字总数 682
作品 0
杭州
私信 提问
I-team 博客全文检索 Elasticsearch 实战

一直觉得博客缺点东西,最近还是发现了,当博客慢慢多起来的时候想要找一篇之前写的博客很是麻烦,于是作为后端开发的楼主觉得自己动手丰衣足食,也就有了这次博客全文检索功能Elasticsearch...

haifeiWu
2018/07/23
0
0
使用logstash+elasticsearch+kibana快速搭建日志平台

日志的分析和监控在系统开发中占非常重要的地位,系统越复杂,日志的分析和监控就越重要,常见的需求有: 根据关键字查询日志详情 监控系统的运行状况 统计分析,比如接口的调用次数、执行时间...

eddy_linux
2015/11/13
2.1K
0
Elasticsearch中文分词研究

一、ES分析器简介 ES是一个实时搜索与数据分析引擎,为了完成搜索功能,必须对原始数据进行分析、拆解,以建立索引,从而实现搜索功能; ES对数据分析、拆解过程如下: 首先,将一块文本分成...

zhaipengfei1231
2018/04/18
0
0
Elastic 南京 Meetup

1. 主办方 Elastic中文社区 趋势科技 2. 时间地点 活动时间:2018年6月30日 13:00 - 18:00 活动地点:雨花区软件大道48号苏豪国际广场B座 趋势科技中国研发中心(靠花神庙地铁站) 3. 报名地...

Medcl
2018/06/04
133
0
elasticsearch教程--Plugins篇-插件

目录 概述 环境准备 认识es插件 插件安装 插件管理命令 彩蛋 概述 上一篇博文记录了elasticsearch分词器, 在地大物博的祖国使用es,不得不考虑中文分词器,es内置的分词器对中文分词的支持可以...

java_龙
2018/10/25
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

一起来学Java8(四)——复合Lambda

在一起来学Java8(二)——Lambda表达式中我们学习了Lambda表达式的基本用法,现在来了解下复合Lambda。 Lambda表达式的的书写离不开函数式接口,复合Lambda的意思是在使用Lambda表达式实现函...

猿敲月下码
15分钟前
6
0
debian10使用putty配置交换机console口

前言:Linux的推广普及,需要配合解决实际应用方能有成效! 最近强迫自己用linux进行实际工作,过程很痛苦,还好通过网络一一解决,感谢各位无私网友博客的帮助! 系统:debian10 桌面:xfc...

W_Lu
47分钟前
10
0
aelf Enterprise 0.8.0 beta有奖公测,“Bug奖金计划”重磅开启

2019年9月30日,aelf Enterprise 0.8.0 beta版正式发布。aelf Enterprise 0.8.0 beta是一个完备的区块链系统, 包含完备的区块链系统、开发套件、开发文档、以及配套的基础应用和基础服务。 ...

AELF开发者社区
48分钟前
8
0
oracle 初始化数据库脚本

create user lpf identified by 123456; create tablespace lpf_ts_cms datafile '/opt/app/oracle/product/11.2.0/lpf.dbf' size 200M; alter user lpf default tablespace lpf_ts_cms; sel......

internetafei
53分钟前
8
0
深入了解Redis底层数据结构

说明 说到Redis的数据结构,我们大概会很快想到Redis的5种常见数据结构:字符串(String)、列表(List)、散列(Hash)、集合(Set)、有序集合(Sorted Set),以及他们的特点和运用场景。不过它们是...

TurboSanil
53分钟前
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部