Elasticsearch 05 | NestJS & ELK Stack

  1. 의존성 설치
npm i --save @nestjs/elasticsearch @elastic/elasticsearch
  1. nest g resource search를 통해 새로운 폴더 생성
  2. es 연결
import { Module } from '@nestjs/common';
import { SearchService } from './search.service';
import { SearchController } from './search.controller';
import { ElasticsearchModule } from '@nestjs/elasticsearch';
//useFactory : 모듈 설정을 동적으로 생성하는 팩토리 함수
/**
 * node : es 노드 주소 ex) <http://localhost:9200>
 * maxRetries : 실패시 재시도할 최대 횟수
 * requestTimeout : 최대 요청시간(밀리초 단위)
 * pingTimeout : 최대 대기 시간(밀리초 단위)
 * sniffOnStart : 스니핑 활성화
 */
@Module({
  imports: [
    ElasticsearchModule.registerAsync({
      useFactory: () => ({
        node: process.env.ES_NODE,
        maxRetries: 10,
        requestTimeout: 60000,
        pingTimeout: 60000,
        sniffOnStart: true,
      }),
    }),
  ],
  controllers: [SearchController],
  providers: [SearchService],
  exports: [SearchService],
})
export class SearchModule {}