diff --git a/src/db/elasticsearch.ts b/src/db/elasticsearch.ts index 2d90238c5a..a3ac494a8c 100644 --- a/src/db/elasticsearch.ts +++ b/src/db/elasticsearch.ts @@ -2,53 +2,55 @@ import * as elasticsearch from 'elasticsearch'; import config from '../config'; // Init ElasticSearch connection -const client = new elasticsearch.Client({ +const client = config.elasticsearch ? new elasticsearch.Client({ host: `${config.elasticsearch.host}:${config.elasticsearch.port}` -}); +}) : null; -// Send a HEAD request -client.ping({ - // Ping usually has a 3000ms timeout - requestTimeout: 30000 -}, error => { - if (error) { - console.error('elasticsearch is down!'); - } else { - console.log('elasticsearch is available!'); - } -}); +if (client) { + // Send a HEAD request + client.ping({ + // Ping usually has a 3000ms timeout + 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 + 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' + }, + mappings: { + note: { + properties: { + text: { + type: 'text', + index: 'analyzed', + analyzer: 'bigram' + } } } } } - } -}); + }); +} export default client; diff --git a/src/services/note/create.ts b/src/services/note/create.ts index ea20b063d5..89f9a91c9b 100644 --- a/src/services/note/create.ts +++ b/src/services/note/create.ts @@ -1,3 +1,4 @@ +import es from '../../db/elasticsearch'; import Note, { pack, INote } from '../../models/note'; import User, { isLocalUser, IUser, isRemoteUser, IRemoteUser, ILocalUser } from '../../models/user'; import stream, { publishLocalTimelineStream, publishGlobalTimelineStream, publishUserListStream } from '../../publishers/stream'; @@ -431,8 +432,6 @@ export default async (user: IUser, data: { // Register to search database if (note.text && config.elasticsearch) { - const es = require('../../../db/elasticsearch'); - es.index({ index: 'misskey', type: 'note',