
npm install @nestjs/elasticsearch
Elasticsearch 모듈을 AppModule에 등록
// app.module.ts
import { Module } from '@nestjs/common';
import { ElasticsearchModule } from '@nestjs/elasticsearch';
@Module({
imports: [
ElasticsearchModule.register({
node: 'http://localhost:9200', // Elasticsearch 서버 URL
}),
],
})
export class AppModule {}
Elasticsearch 클라이언트를 서비스에서 주입하여 사용
import { Injectable } from '@nestjs/common';
import { ElasticsearchService } from '@nestjs/elasticsearch';
@Injectable()
export class SomeService {
constructor(private readonly elasticsearchService: ElasticsearchService) {}
async indexData() {
return await this.elasticsearchService.index({
index: 'some-index',
body: {
key: 'value',
},
});
}
async searchData(query: string) {
return await this.elasticsearchService.search({
index: 'some-index',
body: {
query: {
match: { key: query },
},
},
});
}
}