使用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集群。