본문 바로가기
SERVER DEVELOPMENT/Docker

Docker에서 ElasticSearch로 Full-Text 검색하기(1)

by F.E.D 2023. 3. 5.

데이터가 중요한 세상에서 데이터를 효과적으로 검색하고 분석하는 능력은 비즈니스 모델에서 매우 중요한 요소가 되었습니다.

Full-Text 검색은 사용자가 부분만 입력해도 전체 검색 결과를 낼 수 있는 기술입니다.

Docker에서 Node.js 및 ElasticSearch로 Full-Text 검색을 사용하는 방법을 살펴 보도록 하겠습니다 : )

Full-Text란?

Full-Text란 매우 방대한 양의 문서에서 텍스트를 검색하는 데 사용되는 방법입니다.

구글과 같은 검색 엔진은 텍스트를 분석한 다음에 개별 용어와 단어로 인덱싱을 하고 사용자의 검색 쿼리에 따라서 인덱스를 통해 가장 관련성이 높은 문서를 결과로 보여줍니다.

ElasticSearch란?

ElasticSearch는 매우 수준 높은 텍스트 검색을 제공하는 분산 검색 엔진입니다.

데이터 집계, 자동완성 및 퍼지 검색과 같은 기능을 제공합니다.

Docker를 사용하는 이유?

많은 마이크로 서비스들이 만들어지고 있습니다.

Docker는 개발자가 컨테이너에서 애플리케이션을 생성, 배포, 실행을 할 수 있는 오픈 소스 플랫폼입니다.

해당 컨테이너를 사용하면 종속성을 가볍고 이식 가능하도록 만들 수 있습니다.

마이크로 서비스에서 필수 사항 중에 하나는 이식 가능성일 수 있겠지요 : )

직접적으로 어떤 장점들이 있는지 보면 다음과 같습니다.

  1. 독립성(Isolation) : Docker 컨테이너는 애플리케이션과 해당 종속성을 기본 인프라에서 분리하여 애플리케이션이 다양한 환경에서 일관되게 실행되도록 합니다.
  2. 휴대성(Portability) : Docker 컨테이너는 개발자의 노트북에서 프로덕션 서버로와 같이 서로 다른 환경 간에 쉽게 이동할 수 있으므로 애플리케이션을 쉽게 배포할 수 있습니다.
  3. 효율성(Efficiency) : Docker 컨테이너는 가볍고 기존 가상 머신에 비해 리소스를 적게 사용하므로 애플리케이션을 배포하고 실행하는 데 더 효율적입니다.
  4. 유연성(Flexibility) : Docker 컨테이너는 애플리케이션의 변화하는 요구 사항을 충족하기 위해 쉽게 확장 또는 축소할 수 있습니다.

Docker 컨테이너는 위와 같이 코드, 런타임, 시스템 도구, 라이브러리 및 설정을 포함하여 애플리케이션을 실행하는 데 필요한 모든 것을 포함하는 경량의 독립형 실행 가능 소프트웨어 패키지입니다.

각 컨테이너는 자체 환경에서 격리되고 실행되므로 애플리케이션과 해당 종속성이 기본 인프라에 대한 변경 사항의 영향을 받지 않도록 합니다.

따라서, Docker를 사용하여 ElasticSearch를 설정하면 다양한 시스템 및 배포 환경에서 일관된 개발 환경을 쉽게 만들 수 있습니다.

Docker에 ElasticSearch 설치하기

https://docs.docker.com/desktop/

 

Docker Desktop

 

docs.docker.com

도커를 먼저 설치해주세요~ 환경에 따라서 Mac에서도 intel버전과 silicon으로 선택하는 방법으로 나뉩니다.

 

그 다음으로, 이미지를 다운로드 해주세요.

docker pull docker.elastic.co/elasticsearch/elasticsearch:7.17.4

마지막 버전은 바꾸셔도 됩니다.

설치 되어있는지 확인은 다음 명령어로 해보세요.

docker images

이제 elasticsearch용 Docker 컨테이너를 만들고 실행시켜 보세요.

docker run -e "discovery.type=single-node" --name elasticsearch -p 9200:9200 -p 9300:9300  docker.elastic.co/elasticsearch/elasticsearch:7.17.4

여기서 포트 9200은 elasticsearch의 REST API를 위해서 사용되고, 포트 9300은 노드 간의 통신에 사용 됩니다.

올바르게 동작하는지 다음 명령어로 확인하실 수 있어요.

docker ps

또는
http://localhost:9200/
에 접속

위 명령어는 현재 실행중인 Docker 컨테이너를 나열 해줍니다.

이제, Node 서버를 통해서 검색 수행하는 부분을 다음 시간에 이어서 해보도록 하겠습니다 : )

 

 

 

출처 : https://voskan.host/2023/02/18/full-text-search-with-node-js-and-elasticsearch-on-docker/?mibextid=S66gvF

댓글