一、介绍 我们所熟知以及比较流行常用的全文检索引擎有, elasticsearch,solr.../>

elasticsearch和analysis-ik中文分词的安装使用

linux 2018-12-11 浏览(1042 评论(0

一、介绍

我们所熟知以及比较流行常用的全文检索引擎有,
elasticsearch,solr,spinx,xunsearch,还有一个轻量级的TNTsearch;
elasticsearch,solr都是基于Lucene;
TNTSearch对于博客这类的小项目基本够用了;但是如果最求性能追求更强大的功能的话;
那更优的选择就非 elasticsearch 莫属了;
安装elasticsearch 需要 java8 以上;
这里安装最新版的 java11 ;

二、jdk下载和安装 jdk官方地址

1.下载 jdk:
    wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http:%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie"https://download.oracle.com/otn-pub/java/jdk/11.0.1+13/90cf5d8f270a4347a95050320eef3fb7/jdk-11.0.1_linux-x64_bin.tar.gz

    注:下载jdk安装包的时候,wget需要带这些头部信息,不然下载的包没法用
    --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http:%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie"

2.解压:
    tar -zxvf jdk-11.0.1_linux-x64_bin.tar.gz
    
3.把安装包移动到/usr/local/文件中,并把jdk-11.0.1安装包名更改成java文件名
    mv jdk-11.0.1 /usr/local/java

4.编辑配置文件,配置环境变量:
    vim /etc/profile

    在文本的末尾添加如下内容:
    export JAVA_HOME=/usr/local/java
    export JRE_HOME=/usr/local/java
    export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
    export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

    执行命令生效 :source /etc/profile

5.查看安装情况:java -version

    java version "11.0.1" 2018-10-16 LTS
    Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS)
    Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.1+13-LTS, mixed mode)

  能查看到版本号则表示安装成功;  

三、安装elasticsearch 官网下载

1.下载:
    wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.5.2.tar.gz
    
2.解压:
    tar -zxf elasticsearch-6.5.2.tar.gz
    
3.把安装包移动到/usr/local/文件中,并更改成elasticsearch文件
    注:elasticsearch启动不能用root用户启动,所以需要增加elasticsearch用户
    useradd elsearch
    并将elasticsearch目录变成该用户所有:chown -R elsearch:elsearch elasticsearch
    
4.编辑配置项
    vim /usr/local/elasticsearch/config/elasticsearch.yml
    去掉下面三行的注释;
        bootstrap.memory_lock: true
        network.host: 192.168.0.1
        http.port: 9200
    然后把 network.host 改成 localhost

图片描述

5.启动 elasticsearch
    cd /usr/local/elasticsearch
    切换到elsearch用户,然后在启动
    ./bin/elasticsearch
    
6.如果半天没有启动起来,可能是内存不够
    vim /etc/elasticsearch/jvm.options
    把内存改为自己服务器内存的一半以下;
    比如说这里改为 512M,如图:
    

图片描述

7.启动 elasticsearch
    cd /usr/local/elasticsearch
    切换到elsearch用户,然后在启动
    ./bin/elasticsearch
    
8.查看elasticsearch是否启动成功(curl 127.0.0.1),如图:

图片描述

    至此 elasticsearch 就算是安装完成了。

9.测试一下搜索中文

    curl -H 'Content-Type: application/json'  -XGET 'localhost:9200/_analyze?pretty' -d '{"analyzer":"ik_max_word","text":"黄信强博客"}'  如图:

图片描述

可见elasticsearch内置的分词器对中文相当不友好;
只会一个字一个字的分;下面我们来安装elasticsearch的中文分词

四、安装elasticsearch的中文分词ik-analyzer

1.Elasticsearch 内置的分词器是standard对英文分词还好,但对中文的支持就比较弱,所以需要另外引入一个中文分词器。目前比较流行的中文分词器有:IKAnalyzer、MMSeg4j、Paoding等等。此次引入的是IKAnalyzer。

2.安装ik-analyzer

    /usr/local/elasticsearch/bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.5.2/elasticsearch-analysis-ik-6.5.2.zip
    
    注:我安装的elasticsearch版本是6.5.2,然后elasticsearch-analysis-ik也要对应6.5.2版本
    安装完成,如图:

图片描述

    重启./bin/elasticsearch
    
    ./bin/elasticsearch,然后
    curl -H 'Content-Type: application/json'  -XGET 'localhost:9200/_analyze?pretty' -d '{"analyzer":"ik_max_word","text":"黄信强博客"}'
    

图片描述

    我们可以看到博客两个词语已经成功组合到了一起;
然而我的名字"黄信强"却被硬生生的拆成了3个字,这怎么能忍,我忍不了;

还好强大的 analysis-ik 支持自定义词库;
增加自定义词库;

3.编辑IKAnalyzer.cfg.xml文件
    vim /usr/local/elasticsearch/config/analysis-ik/IKAnalyzer.cfg.xml
    

图片描述

4.创建并编辑huangxinqiang.dic文件
    cd /usr/local/elasticsearch/config/analysis-ik/
    vim huangxinqiang.dic
    输入:黄信强,wq保存退出
    
5.再次搜索中文
    curl -H 'Content-Type: application/json'  -XGET 'localhost:9200/_analyze?pretty' -d '{"analyzer":"ik_max_word","text":"黄信强博客"}'
    

图片描述

至此,中文分词也安装完毕,双击666!

打赏

如果此文对你有所帮助,请随意打赏鼓励作者^_^

黄信强博客