Elasticsearch5.X 搜索引擎框架 安装配置及analysis-ik中文分词插件安装

原创 2017年02月17日 15:20:49

目录

http://blog.csdn.net/fenglailea/article/details/52486471

老版本

http://blog.csdn.net/fenglailea/article/details/52471254

介绍

Elasticsearch一个开源的搜索引擎框架(支持群集架构方式)

JAVA版本说明

必须是 java 1.8.0_73 以上
安装 Java 版本 ,根据教程下载相应的版本
http://blog.csdn.net/fenglailea/article/details/26006647

0.Elasticsearch 简介或其他

http://kibana.logstash.es/content/elasticsearch/
https://es.xiaoleilu.com/

官方文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/setup.html
风来了.fox

服务器说明

如果在服务器上面安装
最低 4G内存,
如果更低的内存 请自行更改 config/jvm.xx 文件中的配置

1.下载和安装

下载地址

https://www.elastic.co/downloads/elasticsearch

目前最新版本 5.2.1
这里选择 LINUX 即方式一
方式一:源码

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.2.1.tar.gz
tar -zxvf elasticsearch-5.2.1.tar.gz

不要用root用户,这里使用hadoop用户

这里是 方式一后续步骤:

不要用root用户,不要用root用户,不要用root用户

不要用root用户,如果已使用root用户解压缩了,先改文件夹所属用户组和用户
root用户是无法启动elasticsearch

chown hadoop:hadoop -R elasticsearch-2.4.0

2.配置elasticsearch

2.1配置

编辑config/elasticsearch.yml

vim config/elasticsearch.yml

修改为

network.host: 0.0.0.0
cluster.name: es

…其他部分没有改动,不需要修改

2.2 环境变量设置

vim /etc/profile.d/elasticsearch.sh

加入

export ES_HOME=/home/hadoop/elasticsearch-5.2.1
export PATH=$ES_HOME/bin:$PATH

应用生效

. /etc/profile
. /etc/bashrc

3.启动

命令

cd elasticsearch目录
bin/elasticsearch     #前台运行
bin/elasticsearch -d  #后台运行

访问

http://10.1.5.66:9200/

10.1.5.66 安装elasticsearch的服务器IP
如果在局域网中访问
修改

vim config/elasticsearch.yml

增加

network.host: 0.0.0.0

3.3停止

查找进程 ID

ps -ef |grep elasticsearch

KILL他

kill -9  id

3.X Elasticsearch设置

4. 插件

执行命令 自动下载安装

4.1 x-pack

bin/elasticsearch-plugin install x-pack

此插件下载速度相当的慢,可以happy几小时回来再看。(如果你有代理那另当别论)

X-Pack是一个Elastic Stack的扩展,将安全,警报,监视,报告和图形功能包含在一个易于安装的软件包中。
在Elasticsearch 5.0.0之前,您必须安装单独的Shield,Watcher和Marvel插件才能获得在X-Pack中所有的功能。
注意,安装之后,所有对ES的访问,增加了security机制,即需要用户名和密码,默认分别为: elastic 和changeme ,使用sense插件访问的时候可以输入,如果你是使用curl等方式访问,则需要在http 的header中增加 Authentication 参数。
验证X-Pack
在浏览器上输入: http://localhost:5601/

4.1 head

此插件已独立运行。新的安装方式

git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
#先要安装 npm   http://blog.csdn.net/fenglailea/article/details/56484144
npm install
grunt server

访问地址

http://localhost:9100/

4.2 bigdesk

bin/plugin install lukas-vlcek/bigdesk

访问地址

http://localhost:9200/_plugin/bigdesk/

中文分词插件analysis-ik

https://github.com/medcl/elasticsearch-analysis-ik/releases

下载,当前版本 v5.2.1,elasticsearch-analysis-ik-5.2.1.zip

wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v5.2.1/elasticsearch-analysis-ik-5.2.1.zip
unzip elasticsearch-analysis-ik-5.2.1.zip -d elasticsearch-analysis-ik-5.2.1

复制到插件目录

mv elasticsearch-analysis-ik-5.2.1 elasticsearch安装目录/plugins/analysis-ik

这个时候需要重启 elasticsearch 插件才能生效(这个可以等设置好词库再重启也可以)

分词词库设置

进入 elasticsearch安装目录
编辑词库配置文件

vim plugins/analysis-ik/config/IKAnalyzer.cfg.xml 

ext_dict 这一行修改为

<entry key="ext_dict">custom/sougou.dic;custom/mydict.dic;custom/single_word_low_freq.dic;custom/product.dic</entry> 

custom/product.dic 是我的词库,这里不方便透露

这个时候需要重启 elasticsearch 插件才能生效

热更新 IK 分词使用方法 来自官方

https://github.com/medcl/elasticsearch-analysis-ik
目前该插件支持热更新 IK 分词,通过上文在 IK 配置文件中提到的如下配置

    <!--用户可以在这里配置远程扩展字典 -->
    <entry key="remote_ext_dict">location</entry>
    <!--用户可以在这里配置远程扩展停止词字典-->
    <entry key="remote_ext_stopwords">location</entry>

其中 location 是指一个 url,比如 http://yoursite.com/getCustomDict,该请求只需满足以下两点即可完成分词热更新。

  • 该 http 请求需要返回两个头部(header),一个是 Last-Modified,一个是 ETag,这两者都是字符串类型,只要有一个发生变化,该插件就会去抓取新的分词进而更新词库。

  • 该 http 请求返回的内容格式是一行一个分词,换行符用 \n 即可。

满足上面两点要求就可以实现热更新分词了,不需要重启 ES 实例。

可以将需自动更新的热词放在一个 UTF-8 编码的 .txt 文件里,放在 nginx 或其他简易 http server 下,当 .txt 文件修改时,http server 会在客户端请求该文件时自动返回相应的 Last-Modified 和 ETag。可以另外做一个工具来从业务系统提取相关词汇,并更新这个 .txt 文件。

分词测试

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

测试分词效果:

http://10.1.5.101:9200/index/_analyze?analyzer=ik_max_word&text=中华人民共和国

结果

{
    "tokens": [
        {
            "token": "中华人民共和国",
            "start_offset": 0,
            "end_offset": 7,
            "type": "CN_WORD",
            "position": 0
        },
        {
            "token": "中华人民",
            "start_offset": 0,
            "end_offset": 4,
            "type": "CN_WORD",
            "position": 1
        },
        {
            "token": "中华",
            "start_offset": 0,
            "end_offset": 2,
            "type": "CN_WORD",
            "position": 2
        },
        {
            "token": "华人",
            "start_offset": 1,
            "end_offset": 3,
            "type": "CN_WORD",
            "position": 3
        },
        {
            "token": "人民共和国",
            "start_offset": 2,
            "end_offset": 7,
            "type": "CN_WORD",
            "position": 4
        },
        {
            "token": "人民",
            "start_offset": 2,
            "end_offset": 4,
            "type": "CN_WORD",
            "position": 5
        },
        {
            "token": "共和国",
            "start_offset": 4,
            "end_offset": 7,
            "type": "CN_WORD",
            "position": 6
        },
        {
            "token": "共和",
            "start_offset": 4,
            "end_offset": 6,
            "type": "CN_WORD",
            "position": 7
        },
        {
            "token": "国",
            "start_offset": 6,
            "end_offset": 7,
            "type": "CN_CHAR",
            "position": 8
        }
    ]
}

Mysql数据库同步 logstash-input-jdbc

6.高级配置说明

http://rockelixir.iteye.com/blog/1883373

http://kibana.logstash.es/content/elasticsearch/

x.其他说明

x.1 bin/elasticsearch命令运行后,出现java.lang.RuntimeException: don’t run elasticsearch as root异常

解决方法:不要使用root用户,使用其他用户,并且要把 elasticsearch 文件夹的所属用户和用户组更改为该用户

每次修改elasticsearch配置,重启elasticsearch才能生效

X.2 max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

[2017-02-17T00:20:16,210][INFO ][o.e.b.BootstrapChecks    ] [l4x7kR2] bound or publishing to a non-loopback or non-link-local address, enforcing bootstrap checks
ERROR: bootstrap checks failed
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] 

修改

sudo vim /etc/sysctl.conf

加入

vm.max_map_count=655360

修改

sudo vim /etc/security/limits.conf

加入

hadoop hard nofile 65536  
hadoop soft nofile 65536 

hadoop这里为用户名
然后重启启动elasticsearch即可

如果以上设置好了,还是报错,请重启服务器即可解决

x.3 Exception in thread “main” ElasticsearchParseException[malformed, expected settings to start with ‘object’, instead was [VALUE_STRING]]

Exception in thread "main" ElasticsearchParseException[malformed, expected settings to start with 'object', instead was [VALUE_STRING]]
        at org.elasticsearch.common.settings.loader.XContentSettingsLoader.load(XContentSettingsLoader.java:73)
        at org.elasticsearch.common.settings.loader.XContentSettingsLoader.load(XContentSettingsLoader.java:52)
        at org.elasticsearch.common.settings.loader.YamlSettingsLoader.load(YamlSettingsLoader.java:50)
        at org.elasticsearch.common.settings.Settings$Builder.loadFromStream(Settings.java:925)
        at org.elasticsearch.common.settings.Settings$Builder.loadFromPath(Settings.java:914)
        at org.elasticsearch.node.internal.InternalSettingsPreparer.prepareEnvironment(InternalSettingsPreparer.java:102)
        at org.elasticsearch.bootstrap.Bootstrap.initialEnvironment(Bootstrap.java:257)
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:297)
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:121)
        at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:112)
        at org.elasticsearch.cli.SettingCommand.execute(SettingCommand.java:54)
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:122)
        at org.elasticsearch.cli.Command.main(Command.java:88)
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:89)
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:82)
Refer to the log for complete error details. 

原因
**参数的冒号前后没有加空格**

X.4 Exception in thread “main” java.lang.UnsupportedClassVersionError: org/elasticsearch/bootstrap/Elasticsearch : Unsupported major.minor version 52.0

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/elasticsearch/bootstrap/Elasticsearch : Unsupported major.minor version 52.0
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:71) 
        ...

java版本低了,换高级版本

部分来源:
http://kibana.logstash.es/content/elasticsearch/
http://www.cnblogs.com/jiu0821/p/5624908.html

http://blog.csdn.net/wuxiao5570/article/details/54407618
http://blog.csdn.net/laoyang360/article/details/51694519
http://blog.csdn.net/xifeijian/article/details/49617775

版权声明:原创文章欢迎转载,不过要记得加出处哦

相关文章推荐

ElasticSearch5.0——中文分词插件IK安装

小知识: ElasticSearch默认分词器的配置。已知ES默认的分词器是标准分词器Standard。如果需要修改默认分词器可以做如下设置:  在配置文件config/elasticsearch.y...

Elasticsearch 5 Ik+pinyin分词配置详解

一、拼音分词的应用拼音分词在日常生活中其实很常见,也许你每天都在用。打开淘宝看一看吧,输入拼音”zhonghua”,下面会有包含”zhonghua”对应的中文”中华”的商品的提示:拼音分词是根据输入的...
  • napoay
  • napoay
  • 2016年12月28日 13:57
  • 15690

Elasticsearch5.5.2 安装教程

最近学习Elasticsearch,顺便记录下操作步骤,供日后参考 安装环境 CentOS release 6.6 1、因Elasticsearch是基于java写的,所以它的运行环境中需要java的...

四、ElasticSearch5.5.2安装使用Kibana监控及配置

一、安装简介ElasticSearch在第一个教程中已经安装完毕,这时已经可以使用程序正常开发了。但是如果想查看索引信息和集群的健康状态怎么办呢?那就是使用Kibana。Kibana可以看成是一个管理...

elasticsearch-5.5.0环境搭建(linux)

1、官网下载资源 elasticsearch-5.5.0.tar.gz kibana-5.5.0-linux-x86_64.tar.gz 2、解压 tar xzvf elasticsearch-5.5...
  • hgg923
  • hgg923
  • 2017年07月10日 15:14
  • 2446

ElasticSearch-SQL 5.5.2 安装及配置

ElasticSearch-SQL 5.5.2 安装及配置 一、ElasticSearch-SQL介绍       ElasticSearch-SQL(后续简称es-sql)是ElasticSearc...

IK Analysis for Elasticsearch(注意ik与elasticsearch的版本对应)

The IK Analysis plugin integrates Lucene IK analyzer (http://code.google.com/p/ik-analyzer/) into el...

理解ElasticSearch的中文分词器【IK】(版本:1.6.0)

安装配置: 从【https://github.com/medcl/elasticsearch-analysis-ik/releases】下载【elasticsearch-analysis-i...
  • LouGnib
  • LouGnib
  • 2015年12月31日 16:10
  • 1752

ElasticSearch5.4.3 环境搭建 2017 (6-IK中文分词插件)

默认ElasticSearch不支持中文分词,所以在使用他的全文搜索时搜索中文是无法模糊查询的。 IK插件Github: IK 里面教程里有两种方式,一种是下载zip放到elasticsearch...

Elasticsearch系列(三)----Elasticsearch5.5.1与插件安装

一、下载源码 Elasticsearch官网地址:https://www.elastic.co/cn/ ,网上的教程用得比较多是2.x版本的,直到 2016-12 推出了5.x 版本 ,将版本号调...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Elasticsearch5.X 搜索引擎框架 安装配置及analysis-ik中文分词插件安装
举报原因:
原因补充:

(最多只允许输入30个字)