diff --git a/src/db/elasticsearch.ts b/src/db/elasticsearch.ts
index 8e86a942e6..4acff40793 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
+		});
 	});
 }