forked from mastodon/mastodon
-
Notifications
You must be signed in to change notification settings - Fork 0
InstanceWithElasticsearch
Daigo 3 Dango edited this page Feb 18, 2018
·
15 revisions
https://elements.heroku.com/addons/bonsai
.profile
でadd-onのconfig varをMastodonの環境変数にします。
# Obtain info from BONSAI_URL for Bonsai Elasticsearch
if [ -n "$BONSAI_URL" ]; then
export ES_HOST=$BONSAI_URL
export ES_PREFIX=
export ES_PORT=
fi
Add-onの生成とインデックスの作成
$ heroku addons:create bonsai -a $APP_NAME
$ heroku run:detached rails chewy:deploy -a $APP_NAME
$ heroku logs -t -a $APP_NAME | grep run.
Default type scope order, limit and offset are ignored and will be nullified
Resetting StatusesIndex
20分くらいで下記のエラーになりました。
:
rails aborted!
Elasticsearch::Transport::Transport::Errors::Forbidden: [403] {"code":403,"message":"Updates to this cluster have been disabled. Please contact [email protected] for further details."}
当ぼっちインスタンスのトゥート数は無償プランには入りきなかったようです。
うまくいった場合には下記のように全文検索を有効にします。
$ heroku config:set ES_ENABLED=true -a $APP_NAME
https://elements.heroku.com/addons/searchbox
.profile
でadd-onのconfig varをMastodonの環境変数にします。
# Obtain info from SEARCHBOX_SSL_URL for Searchbox Elasticsearch
if [ -n "$SEARCHBOX_SSL_URL" ]; then
export ES_HOST=$SEARCHBOX_SSL_URL
export ES_PREFIX=
export ES_PORT=
fi
日本語を検索対象にできるよう、app/chewy/statuses_index.rb
の冒頭部分を下記のように変更して、トークナイザーにKuromojiを使うようにします。ついでにicu_normalizer
で規格化をするようにもしてみました (参考: Elasticsearch 日本語形態素解析のための文字列正規化の重要性):
class StatusesIndex < Chewy::Index
settings index: { refresh_interval: '15m' }, analysis: {
filter: {
english_stop: {
type: 'stop',
stopwords: '_english_',
},
english_stemmer: {
type: 'stemmer',
language: 'english',
},
english_possessive_stemmer: {
type: 'stemmer',
language: 'possessive_english',
},
},
analyzer: {
content: {
tokenizer: 'kuromoji_tokenizer',
char_filter: %w(
icu_normalizer
),
filter: %w(
english_possessive_stemmer
asciifolding
english_stop
english_stemmer
),
},
},
}
Add-onの生成とインデックスの作成
$ heroku addons:create searchbox:starter -a $APP_NAME
$ heroku run:detached rails chewy:deploy -a $APP_NAME
$ heroku logs -t -a $APP_NAME | grep run.
5分くらいで下記のエラーになりました。
:
rails aborted!
Elasticsearch::Transport::Transport::ServerError: [429] {"error_id":"f0836083-4465-4a48-aa18-138786910b79","errors":[{"code":99701,"message":"You have reached your maximum storage size, upgrade your plan for more storage"}]}
当ぼっちインスタンスのトゥート数は無償プランには入りきなかったようです。Microプラン($9/月)だとどうだろう?
$ heroku addons:create searchbox:micro -a $APP_NAME
$ heroku run:detached rails chewy:deploy -a $APP_NAME
$ heroku logs -t -a $APP_NAME | grep run.
25分くらいで最初のインデックスが終わったようです。入りきったかな?
うまくいった場合には下記のように全文検索を有効にします。
$ heroku config:set ES_ENABLED=true -a $APP_NAME
Contents in this wiki is copyright 2017 by zunda and licensed under a Creative Commons Attribution 4.0 International License.