使用Fess连接到外部的Elasticsearch集群

Fess是什么

官方网站:http://fess.codelibs.org/ja/
Fess 是一个用 Java 编写的全文搜索服务器。它在 Github 上以 Apache 许可证进行公开,并且可以简单地引入类似于 Google 搜索引擎的功能。
此外,Fess 还支持通过图形化界面进行配置,使得管理变得更加容易。
本次我们将尝试访问已经构建好的 Elasticsearch 集群。

环境

Ubuntu 16.04 LTS
Java 版本为 “1.8.0_91”
Fess 版本为 10.1.1
Elasticsearch 版本为 2.3.3

步骤

基本上,我们将按照此处的官方文档进行操作。

弹性搜索

首先,下载并安装Elasticsearch,并添加用于Fess的插件。

$ wget https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/deb/elasticsearch/2.3.3/elasticsearch-2.3.3.deb
$ sudo dpkg -i ./elasticsearch-2.3.3.deb
$ sudo /usr/share/elasticsearch/bin/plugin install org.codelibs/elasticsearch-analysis-kuromoji-neologd/2.3.0
$ sudo /usr/share/elasticsearch/bin/plugin install org.codelibs/elasticsearch-analysis-ja/2.3.0
$ sudo /usr/share/elasticsearch/bin/plugin install org.codelibs/elasticsearch-analysis-synonym/2.3.0
$ sudo /usr/share/elasticsearch/bin/plugin install org.codelibs/elasticsearch-configsync/2.3.0
$ sudo /usr/share/elasticsearch/bin/plugin install org.codelibs/elasticsearch-dataformat/2.3.0
$ sudo /usr/share/elasticsearch/bin/plugin install org.codelibs/elasticsearch-langfield/2.3.0
$ sudo /usr/share/elasticsearch/bin/plugin install http://maven.codelibs.org/archive/elasticsearch/plugin/kopf/elasticsearch-kopf-2.0.1.0.zip
$ sudo /usr/share/elasticsearch/bin/plugin install org.bitbucket.eunjeon/elasticsearch-analysis-seunjeon/2.3.3.0

为了在Fess中使用,需要向Elasticsearch的配置文件中添加设置。

configsync.config_path: /var/lib/elasticsearch/config
script.engine.groovy.inline.update: on

以下的命令可以。

$ sudo echo -e "configsync.config_path: /var/lib/elasticsearch/config\nscript.engine.groovy.inline.update: on" | sudo tee -a /etc/elasticsearch/elasticsearch.yml

确认安装并启动。

$ sudo /bin/systemctl daemon-reload
$ sudo /bin/systemctl status elasticsearch.service
● elasticsearch.service - Elasticsearch
   Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; disabled; vendor preset: en
   Active: inactive (dead)
   (略)

$ sudo /bin/systemctl start elasticsearch.service
$ sudo /bin/systemctl status elasticsearch.service
● elasticsearch.service - Elasticsearch
   Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; disabled; vendor preset: en
   Active: active (running) since 月 2016-07-04 16:46:40 JST; 1s ago
   (略)

$ curl -XGET "localhost:9200/_aliases?pretty"
{
  ".configsync" : {
    "aliases" : { }
  }
}

在启动时设置自动启动,执行以下命令:
$ sudo /bin/systemctl enable elasticsearch.service

赔偿费

接下来,我们要下载并安装Fess。由于似乎还没有.deb文件,因此我们将下载zip版本。

$ wget https://github.com/codelibs/fess/releases/download/fess-10.1.1/fess-10.1.1.zip 
$ unzip fess-10.1.1.zip

默认情况下,Fess引用的Elasticsearch为9201和9301。
通过更改fess/bin/fess.in.sh,我们应该将其更改为9200和9300。
由于它在文件的后半部分被使用,所以需要在前半进行描述。
我在第三行添加了这一内容。

#!/bin/sh

ES_HTTP_URL=http://localhost:9200
ES_TRANSPORT_URL=localhost:9300
FESS_DICTIONARY_PATH=/var/lib/elasticsearch/config/

()

然后启动Fess。
$ ./bin/fess
让我们确认一下是否在9200和9300端口上有访问。

$ curl -XGET "localhost:9200/_aliases?pretty"
{
  "fess" : {
    "aliases" : { }
  },
  ".suggest.analyzer" : {
    "aliases" : { }
  },
  ".suggest" : {
    "aliases" : { }
  },
  ".fess_user" : {
    "aliases" : { }
  },
  ".suggest-array" : {
    "aliases" : { }
  },
  "fess.suggest" : {
    "aliases" : { }
  },
  ".fess_config" : { (略) },
  ".configsync" : {
    "aliases" : { }
  },
  "fess_log" : {
    "aliases" : { }
  }
}

您可以确认已经注册了在Fess中使用的索引。

总结

这次我们尝试从Fess端指定访问Elasticsearch。
您可以使用现有资源,或连接到外部构建的Elasticsearch集群。

广告
将在 10 秒后关闭
bannerAds