From 9d49636cd17fd2e335b343042818a5da8fc749ec Mon Sep 17 00:00:00 2001
From: syuilo <syuilotan@yahoo.co.jp>
Date: Wed, 4 Jul 2018 20:02:45 +0900
Subject: [PATCH] wip

---
 elasticsearch/README.md     |  6 -----
 elasticsearch/mappings.json | 52 -------------------------------------
 src/db/elasticsearch.ts     | 42 ++++++++++++++++++++++++++----
 3 files changed, 37 insertions(+), 63 deletions(-)
 delete mode 100644 elasticsearch/README.md
 delete mode 100644 elasticsearch/mappings.json

diff --git a/elasticsearch/README.md b/elasticsearch/README.md
deleted file mode 100644
index c7fcb245f0..0000000000
--- a/elasticsearch/README.md
+++ /dev/null
@@ -1,6 +0,0 @@
-How to create indexes
-=====================
-
-``` shell
-curl -XPOST localhost:9200/misskey -d @path/to/mappings.json
-```
diff --git a/elasticsearch/mappings.json b/elasticsearch/mappings.json
deleted file mode 100644
index 80a007892a..0000000000
--- a/elasticsearch/mappings.json
+++ /dev/null
@@ -1,52 +0,0 @@
-{
-	"settings": {
-		"analysis": {
-			"analyzer": {
-				"bigram": {
-					"tokenizer": "bigram_tokenizer"
-				}
-			},
-			"tokenizer": {
-				"bigram_tokenizer": {
-					"type": "nGram",
-					"min_gram": 2,
-					"max_gram": 2,
-					"token_chars": [
-						"letter",
-						"digit"
-					]
-				}
-			}
-		}
-	},
-	"mappings": {
-		"user": {
-			"properties": {
-				"username": {
-					"type": "string",
-					"index": "analyzed",
-					"analyzer": "bigram"
-				},
-				"name": {
-					"type": "string",
-					"index": "analyzed",
-					"analyzer": "bigram"
-				},
-				"bio": {
-					"type": "string",
-					"index": "analyzed",
-					"analyzer": "bigram"
-				}
-			}
-		},
-		"note": {
-			"properties": {
-				"text": {
-					"type": "string",
-					"index": "analyzed",
-					"analyzer": "bigram"
-				}
-			}
-		}
-	}
-}
diff --git a/src/db/elasticsearch.ts b/src/db/elasticsearch.ts
index 957b7ad97d..2d90238c5a 100644
--- a/src/db/elasticsearch.ts
+++ b/src/db/elasticsearch.ts
@@ -9,13 +9,45 @@ const client = new elasticsearch.Client({
 // Send a HEAD request
 client.ping({
 	// Ping usually has a 3000ms timeout
-	requestTimeout: Infinity,
-
-	// Undocumented params are appended to the query string
-	hello: 'elasticsearch!'
-} as any, error => {
+	requestTimeout: 30000
+}, error => {
 	if (error) {
 		console.error('elasticsearch is down!');
+	} else {
+		console.log('elasticsearch is available!');
+	}
+});
+
+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: 'analyzed',
+						analyzer: 'bigram'
+					}
+				}
+			}
+		}
 	}
 });