[Nest.js] ElasticSearch 사용하기

Woong·2023년 3월 30일
0

Nestjs

목록 보기
25/28

설치

npm i --save @nestjs/elasticsearch @elastic/elasticsearch

사용하기

  • useFactory, configService 로 비동기로 설정
    • client configuration 은 link 참조
ElasticsearchModule.registerAsync({
  imports: [ConfigModule],
  useFactory: async (configService: ConfigService) => ({
    node: configService.get('ELASTICSEARCH_NODE'),
  }),
  inject: [ConfigService],
}),
  • ElasticSearch injection
@Injectable()
export class SearchService {
  constructor(private readonly elasticsearchService: ElasticsearchService) {}
}
  • @nestjs/elasticsearchElasticsearchService@elastic/elasticsearchClient를 래핑하는 형태이다.
    • 따라서 API 도 동일
  await client.index({
    index: 'game-of-thrones',
    document: {
      character: 'Ned Stark',
      quote: 'Winter is coming.'
    }
  })
  const result= await client.search({
    index: 'game-of-thrones',
    query: {
      match: { quote: 'winter' }
    }
  })

reference

0개의 댓글