Crowiの検索機能を有効にする

前回の続きです。
検索機能を設定するにはElasticsearchが必要なので、セットアップします。

やること

  • Elasticsearchセットアップ
  • Crowiの設定

Elasticseachのセットアップ

コンテナ作成

Elasticsearch用のコンテナを新たに立てます。

docker run -it -p 9200:9200 -p 9300:9300 -e ES_JAVA_OPTS="-Xms128m -Xmx128m" -e "http.host=0.0.0.0" --name="elasticsearch" elasticsearch
docker exec -it elasticsearch bash

メモリ部分は128mにしてますが、余裕がある場合は環境に合わせて変更したほうがよいかもです。

kuromojiプラグインのインストール

kuromojiという日本語対応のプラグインいれて再起動します。

/usr/share/elasticsearch/bin/elasticsearch-plugin install analysis-kuromoji

Dockerコンテナごと再起動します。

exit
docker restart elasticsearch
docker exec -it elasticsearch bash

プラグインが入っているか確認

$ curl -sX GET 'http://localhost:9200/_nodes/plugins?pretty' | grep kuromoji
"name" : "analysis-kuromoji",
"description" : "The Japanese (kuromoji) Analysis plugin integrates Lucene kuromoji analysis module into elasticsearch.",
"classname" : "org.elasticsearch.plugin.analysis.kuromoji.AnalysisKuromojiPlugin",

入っていますね!

Crowiの設定

elasticsearchコンテナのIPを確認しておきます。

$ docker inspect -f '{{ .NetworkSettings.IPAddress }}' elasticsearch
172.17.0.1

crowiのコンテナに入り再起動させます。

PASSWORD_SEED=pwseed123456789 MONGO_URI=mongodb://localhost:27017 ELASTICSEARCH_URI=http://172.17.0.1:9200 npm start

ELASTICSEARCH_URI=http://172.17.0.1:9200を追加してます。

ではブラウザからアクセスしてみます。

検索ボックスが追加されてます。
[検索管理] → [Build Now]をクリックしてNow re-building index ... this takes a while.と表示されると有効になります。

サンプルで議事録ページを作ってみたので、「議事録」で検索してみます。

検索HITしました!

所感

検索機能あったほうがよいです。

サーバサイドエンジニア。オムライスが好物

シェアする

  • このエントリーをはてなブックマークに追加

フォローする