前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Ubuntu 安装 Elasticsearch 和 elasticsearch-analysis-ik 分词

Ubuntu 安装 Elasticsearch 和 elasticsearch-analysis-ik 分词

作者头像
hedeqiang
发布2019-12-17 20:42:55
1.2K0
发布2019-12-17 20:42:55
举报
文章被收录于专栏:LaravelCodeLaravelCode

Ubuntu 安装 Elasticsearch 和 elasticsearch-analysis-ik 分词

假设你已经安装了 JDK ,如没有请查看这篇文章进行安装JDK

安装 Elasticsearch

官方文档

1、下载 Elasticsearch

代码语言:javascript
复制
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.4.0.tar.gz

2、 解压

代码语言:javascript
复制
tar -xzf elasticsearch-6.4.0.tar.gz

3.、启动

代码语言:javascript
复制
cd elasticsearch-6.4.0/
./bin/elasticsearch  

或者 作为守护进程运行

代码语言:javascript
复制
./bin/elasticsearch -d -p pid

Elasticsearch 会在默认的9200端口运行

代码语言:javascript
复制
curl localhost:9200
可能遇到的问题:

1、使用非 root用户启动ES,而该用户的文件权限不足而被拒绝执行

代码语言:javascript
复制
Java HotSpot(TM) 64-Bit Server VM warning: Option UseConcMarkSweepGC was deprecated in version 9.0 and will likely be removed in a future release.
[2018-09-01T08:41:24,515][WARN ][o.e.b.ElasticsearchUncaughtExceptionHandler] [] uncaught exception in thread [main]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:140) ~[elasticsearch-6.4.0.jar:6.4.0]
        at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:127) ~[elasticsearch-6.4.0.jar:6.4.0]
        at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.4.0.jar:6.4.0]
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.4.0.jar:6.4.0]
        at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-6.4.0.jar:6.4.0]
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:93) ~[elasticsearch-6.4.0.jar:6.4.0]
        at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:86) ~[elasticsearch-6.4.0.jar:6.4.0]
Caused by: java.lang.RuntimeException: can not run elasticsearch as root
        at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:104) ~[elasticsearch-6.4.0.jar:6.4.0]
        at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:171) ~[elasticsearch-6.4.0.jar:6.4.0]
        at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:326) ~[elasticsearch-6.4.0.jar:6.4.0]
        at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:136) ~[elasticsearch-6.4.0.jar:6.4.0]
        ... 6 more

解决方式:

代码语言:javascript
复制
sudo chown -R vagrant:vagrant /var/elasticsearch-6.4.0

重新启动

代码语言:javascript
复制
./bin/elasticsearch -d

查看是否启动

代码语言:javascript
复制
curl localhost:9200

如返回如下格式,即表示安装启动成功

代码语言:javascript
复制
{
  "name" : "iK2w1Zv",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "u8XYlB1ZQACw0b1W0MA0Pw",
  "version" : {
    "number" : "6.4.0",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "595516e",
    "build_date" : "2018-08-17T23:18:47.308994Z",
    "build_snapshot" : false,
    "lucene_version" : "7.4.0",
    "minimum_wire_compatibility_version" : "5.6.0",
    "minimum_index_compatibility_version" : "5.0.0"
  },
  "tagline" : "You Know, for Search"
}
  1. Text file busy Could not rename log file 'logs/gc.log' to 'logs/gc.log.03' (Text file busy) 解决方式:

找出占用该文件的进程:

代码语言:javascript
复制
sudo fuser 文件名

杀死占用该文件的进程

代码语言:javascript
复制
sudo kill -9 进程id

安装 elasticsearch-analysis-ik 分词

官方文档

我们安装的 Elasticsearch 版本为 6.4.0,该版本匹配的版本号也是6.4.0 如果复制文档地址可能会报如下错误:

代码语言:javascript
复制
Exception in thread "main" java.lang.IllegalArgumentException: Plugin [analysis-ik] was built for Elasticsearch version 6.3.0 but version 6.4.0 is running
        at org.elasticsearch.plugins.PluginsService.verifyCompatibility(PluginsService.java:339)
        at org.elasticsearch.plugins.InstallPluginCommand.loadPluginInfo(InstallPluginCommand.java:717)
        at org.elasticsearch.plugins.InstallPluginCommand.installPlugin(InstallPluginCommand.java:792)
        at org.elasticsearch.plugins.InstallPluginCommand.install(InstallPluginCommand.java:775)
        at org.elasticsearch.plugins.InstallPluginCommand.execute(InstallPluginCommand.java:231)
        at org.elasticsearch.plugins.InstallPluginCommand.execute(InstallPluginCommand.java:216)
        at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86)
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124)
        at org.elasticsearch.cli.MultiCommand.execute(MultiCommand.java:77)
        at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124)
        at org.elasticsearch.cli.Command.main(Command.java:90)
        at org.elasticsearch.plugins.PluginCli.main(PluginCli.java:47)

所以到 这里 复制6.4.0 的链接地址

安装

代码语言:javascript
复制
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.4.0/elasticsearch-analysis-ik-6.4.0.zip

重新启动 elasticsearch

代码语言:javascript
复制
./bin/elasticsearch -d

查看效果:

代码语言:javascript
复制
curl -H 'Content-Type: application/json'  -XGET 'localhost:9200/_analyze?
pretty' -d '{"analyzer":"ik_max_word","text":"贺德强"}'

正常的话 会返回如下内容:

代码语言:javascript
复制
{
  "tokens" : [
    {
      "token" : "贺",
      "start_offset" : 0,
      "end_offset" : 1,
      "type" : "CN_CHAR",
      "position" : 0
    },
    {
      "token" : "德",
      "start_offset" : 1,
      "end_offset" : 2,
      "type" : "CN_CHAR",
      "position" : 1
    },
    {
      "token" : "强",
      "start_offset" : 2,
      "end_offset" : 3,
      "type" : "CN_CHAR",
      "position" : 2
    }
  ]
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Ubuntu 安装 Elasticsearch 和 elasticsearch-analysis-ik 分词
    • 安装 Elasticsearch
    • 或者 作为守护进程运行
      • 安装 elasticsearch-analysis-ik 分词
      相关产品与服务
      Elasticsearch Service
      腾讯云 Elasticsearch Service(ES)是云端全托管海量数据检索分析服务,拥有高性能自研内核,集成X-Pack。ES 支持通过自治索引、存算分离、集群巡检等特性轻松管理集群,也支持免运维、自动弹性、按需使用的 Serverless 模式。使用 ES 您可以高效构建信息检索、日志分析、运维监控等服务,它独特的向量检索还可助您构建基于语义、图像的AI深度应用。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档