LoginSignup
2
3

More than 1 year has passed since last update.

crowiで検索が上手く動作しないときは

Last updated at Posted at 2019-10-17

オープンソースのwikiであるcrowiをインストールして検索ができなくてハマったのでその時のメモですにゃん😸。こんなアフォはワイくらいかもしれんけどおんなじようなアフォの子がいたら参考にしてほしいにゃん。

環境

  • CentOS 7.7
  • crowi 1.7.9
  • JDK8
  • ElasticSearch 6.8.3 (yumで入れただけ)
  • ElasticSearchのプラグインkuromojiは入れた

設定内容はこんな感じ

$ cat /etc/sysconfig/crowi
PORT=3000
NODE_ENV=production
MONGO_URI="mongodb://crowi:(あなたのパスワード)/crowi"
REDIS_URL="redis://localhost:6379"
ELASTICSEARCH_URI="http://localhost:9200"
PASSWORD_SEED="あなたのパスワードシード"
FILE_UPLOAD=local

結論からいうと設定は上記で間違ってなかったです。

症状

  • crowiの検索以外の機能は正常に動作している。
  • crowiの検索バーはページトップに表示されていて検索はできる。
  • 検索するとすぐにもどってきて「No page found with (検索キーワード)」みたいに表示される。検索結果が一つもヒットしない。
  • crowiの管理画面から「管理>検索管理>BUILD INDEX」は実行したが症状は変わらない。

原因を調べてみる

crowiはnodejsで動いているのでデーモンとしてではなくコマンドシェルから起動してみればstderrにログが表示される。そこでsshでサーバにログインしてcrowiをrootで起動してみる。

$ sudo su
# systemctl stop crowi   (デーモン起動しているcrowiをいったん止める)
# PORT=3000 NODE_ENV=production \
  MONGO_URI="mongodb://crowi:(あなたのパスワード)/crowi" \
  REDIS_URL="redis://localhost:6379" \
  ELASTICSEARCH_URI="http://localhost:9200" \
  PASSWORD_SEED="(あなたのパスワードシード)" \
  FILE_UPLOAD=local \
  /usr/local/bin/node app.js

上記を実行して、

Listening port 3000...

と出てくればcrowiは起動している。

この状態で少し待ってみると、ElasticSearchまわりのエラーで、

Error: index crowi-current already exists

みたいな感じのエラーが出ました。

crowiはcrowi-currentという検索インデックスを作るようですが、過去にcrowiを強制終了したりして既にこのインデックスが存在するとこのエラーが出るようです。
しかしcrowiのブラウザ画面上には何にもエラーが表示されないのでこのエラーでElasticSearchと接続できていないことがブラウザ画面で見ている限りユーザーにはわかりません。(ここで素人はお手上げにゃん😸)

解決方法

上記の通りElasticSearchのインデックスが競合していることが原因なので、インデックスを消してしまえ。

以下のコマンドを実行

$ curl -XDELETE http://localhost:9200/crowi-current?pretty=true

更にcrowiをデーモンで再起動

# sudo systemctl start crowi

crowiの管理画面にログインして再度、検索設定のBUILD INDEXを押す。

これで検索が正常に動作するようになりましたにゃん😸。

めでたしめでたしにゃん😸。


ps. crowiを公開して下さっているCrocosさんありがとうありがとう。使わせていただいてます。

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3