diff --git a/src/db/elasticsearch.ts b/src/db/elasticsearch.ts index 8e86a942e..4acff4079 100644 --- a/src/db/elasticsearch.ts +++ b/src/db/elasticsearch.ts @@ -1,6 +1,36 @@ import * as elasticsearch from 'elasticsearch'; import config from '../config'; +const index = { + settings: { + analysis: { + analyzer: { + bigram: { + tokenizer: 'bigram_tokenizer' + } + }, + tokenizer: { + bigram_tokenizer: { + type: 'nGram', + min_gram: 2, + max_gram: 2 + } + } + } + }, + mappings: { + note: { + properties: { + text: { + type: 'text', + index: true, + analyzer: 'bigram' + } + } + } + } +}; + // Init ElasticSearch connection const client = config.elasticsearch ? new elasticsearch.Client({ host: `${config.elasticsearch.host}:${config.elasticsearch.port}` @@ -19,37 +49,15 @@ if (client) { } }); - client.indices.create({ - index: 'misskey', - body: { - settings: { - analysis: { - analyzer: { - bigram: { - tokenizer: 'bigram_tokenizer' - } - }, - tokenizer: { - bigram_tokenizer: { - type: 'nGram', - min_gram: 2, - max_gram: 2 - } - } - } - }, - mappings: { - note: { - properties: { - text: { - type: 'text', - index: true, - analyzer: 'bigram' - } - } - } - } - } + client.indices.exists({ + index: 'misskey' + }).then(exist => { + if (exist) return; + + client.indices.create({ + index: 'misskey', + body: index + }); }); }