Page History
| Tip |
|---|
검색 엔진을 활용한 검색 API를 만들기전에, 활용해야할 인프라를 구축해보자 의존 인프라,작동 소스코드,기능테스트를 위한 최소 스키마및 데이터 준비 를 모두 도커로 올인화하여 로컬 개발을 가속화 시킴과 동시에 다양한 복제환경구성이 용이할것이다. |
데이터 파이프라인
원본 데이터는 RDB(mysql)에 유지하고 ,검색 스키마(문서)를 엘라서틱서치와 동기화하여
...
의존 구성 인프라를 로컬에 모두 구성할수 있게, 도커 컴포져로 다음과 같이 구성하였습니다.
도커 컴포져로 구성하기
위치 : https://github.com/psmon/searchapi/tree/master/Infra
| Code Block | language | yml|||
|---|---|---|---|---|
| ||||
version: '3.5'
services:
searchdb:
image: mysql:5.7
command: --default-authentication-plugin=mysql_native_password
restart: always
ports:
- 13306:3306
volumes:
- ./init/firstsql.mysql:/docker-entrypoint-initdb.d/init.sql
environment:
MYSQL_ROOT_PASSWORD: root
adminer:
image: adminer
restart: always
ports:
- 13307:8080
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:7.4.0
container_name: elasticsearch
environment:
- xpack.security.enabled=false
- discovery.type=single-node
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
cap_add:
- IPC_LOCK
volumes:
- elasticsearch-data:/usr/share/elasticsearch/data
ports:
- 9200:9200
- 9300:9300
kibana:
container_name: kibana
image: docker.elastic.co/kibana/kibana:7.4.0
restart: always
environment:
- ELASTICSEARCH_HOSTS=http://elasticsearch:9200
ports:
- 5601:5601
depends_on:
- elasticsearch
volumes:
elasticsearch-data:
driver: local
|
...
- searchdb : 데이터 원본이 mysql에 저장되며 init.sql 을통해 최소 스키마셋팅및 기본 데이터가 적용됩니다.
- adminer : 웹환경에서 mysql의 데이터 조작이 가능하며, 테스터에게 다양한 데이터 조작기능 제공을 위한 툴입니다.
- elasticsearch : 엘라서틱 서치의 메인 엔진입니다.
- kibana : 엘라서틱 서치의 인덱스된 데이터를 시각화하고 관리할수 있는 툴입니다.
인덱싱 하기
실행 : http://localhost:5000/swagger/index.html...
- 인덱스 : 빠른 탐색을 위해 분류 정리가 된 상태
- 인덱싱 : 인덱스를 처리하고 있는 상태
- 풀 인덱싱 : 전체 자료를 다시 정리하고 있는 상태
- 증분업데이트 : 인덱스된 데이터의 문서를 부분 수정함
- 검색 : 인덱스 된 자료를 활용하여 빠르게 검색 하는 행위
검색 문서를 키바나에 연동
실행 : http://localhost:5601/app/kibana
...
키바나에 검색 인덱스 데이터를 연결하면 , 검색 데이터를 시각화할수 있으며
인덱스를 효율적으로 관리할수 있습니다.
키바나를 이용한검색
검색 문서가 키바나를 통해 검색이 되면.... 검색 API를 만들기 위한 인프라 준비가 완료되었습니다.
...



