본문 바로가기
728x90

ElasticSearch6

[검색서비스] 어쩌다보니 이세계 검색서비스 담당자 ElasticSearch 를 사용해본 경험이 있다는 것 하나로 어쩌다보니 검색 서비스 담당자가 되었다. 당시에 검색 관련해서 물어볼 사람이 없었기에 구축하는 과정에서 스트레스를 정말 많이 받았었는데, 혹시라도 나같은 사람이 있다면 조금이나마 도움이 되고자 글을 작성해본다. 검색서비스 구축 순서는 보통 아래와 같이 진행한다. 1. 검색엔진 세팅 -> 2. 인덱싱 프로세스 구축 -> 3. API 개발 1. 검색엔진 세팅 우리의 경우 AWS OpenSearch 를 사용했는데, ElasticSearch 와 마찬가지로 인덱스 별로 settings 와 mappings 정보를 세팅해줘야 한다. settings: tokenizer, analyzer 등과 관련된 정보 세팅 mappings: 인덱스 별로 필요한 필드명, .. 2024. 1. 19.
[ElasticSearch] 한글 형태소 분석기 설치하기 한글은 아주 복잡한 언어이다. 특히 복합어, 합성어 등이 많아 하나의 단어도 여러 어간으로 분리해야 하는 경우가 많기 때문에 한글 형태소 분석기 세팅이 필요하다. 오픈 소스 커뮤니티에서 개발되어 Elasticsearch 에서 사용 가능한 한글 형태소 분석기는 다음과 같은 것들이 있다. 1. 아리랑 (arirang) Lucene 형태소 분석기 URL: github.com/korlucene 참고: www.elastic.co/kr/blog/arirang-analyzer-with-elasticsearch 2. 은전한닢 (seunjeon) mecab-ko-dic 기반으로 만들어진 JVM 상에서 돌아가는 한국어 형태소 분석기로, 사전이 패키지 내에 포함되어 있기 때문에 별도로 설치할 필요가 없음 URL: bitbu.. 2021. 5. 3.
[OpenSearch] dictionary 추가하기 AWS ES 에는 Elasticsearch 커뮤니티의 플러그인이 미리 포함되어 있기 때문에 bin/elasticsearch-plugin install 명령어를 날려줄 필요가 없다. (워후) 플러그인 전체 목록은 Kibana 의 Dev Tools 에서 아래와 같이 명령어를 날리거나, GET _cat/plugins?v curl 명령어를 통해 확인할 수 있다. $ curl -u ${ES_USER}:${ES_PASSWORD} ${ES_HOST}/_cat/plugins 사용자 사전 추가하기 한글 형태소 분석기로 analysis-seunjeon (은전한닢, mecab) 가 있는데, 형태소 분석기를 아무리 잘 만들어놨다고 해도 한글의 세계는 오묘하고도 어렵기 때문에 사용자 사전을 추가해주는게 좋다. 1. 사용자 사전.. 2021. 4. 23.
[Docker-elk] docker-elk 세팅하고 띄우기 원래는 elk를 이용하여 로그를 수집하고 수집한 로그를 이용하여 통계 자료를 만들고 싶었다. 대표님曰: 검색서비스 개선해야 하는데, Elasitcsearch 가 좋다더라. 요니킴曰: 제가 진행해 보겠습니다. 🙋🏻‍♀️ 검색서비스도 개선하고 원하는 바도 이루기 위해 도입하게 된 docker-elk. ※ ELK 스택 이란? Elasticsearch: JSON 기반의 분산형 오픈 소스 검색 및 분석 엔진, 주로 REST API를 통해 처리한다. Logstash: 여러 소스에서 동시에 데이터를 수집하여 변환한 후, Elasticsearch 같은 "stash"로 전송하는 서버사이드 데이터 처리 파이프라인을 말한다. Kibana: Elasticsearch에서 색인된 데이터를 검색하고 보고 시각화하며 막대 차트, 원.. 2021. 4. 20.
[OpenSearch] docker-elk 에서 AWS ES 로 옮기기 - 2. docker-logstash docker-elk 에서 Elasticsearch 와 Kibana 는 AWS 를 이용하기에, Logstash 만 따로 띄워주면 됐다. AWS Elastic Container Service (ECS) 에 띄우는 걸 최종 목표로 하고, 우선 AWS EC2 인스턴스를 띄워 docker 로 띄우기로 결정했다. ※ 사전준비 작업 - AWS Elasticsearch Service 생성하기 - AWS Elastic Container Registry(ECR) 세팅하기 - Bitbucket Pipelines 세팅하기 docker-logstash를 AWS EC2 인스턴스에 띄우기 (근데 이제 삽질을 곁들인) ▷ bitbucket-pipelines.yml options: docker: true size: 2x definit.. 2021. 4. 20.
[OpenSearch] docker-elk 에서 AWS ES 로 옮기기 - 1. AWS ES 생성 맨처음 Elasticsearch 를 이용한 검색서비스를 도입할 때, docker 를 사용하여 Elasticsearch, Logstash, Kibana 를 AWS EC2 인스턴스에 띄웠었다. 그.러.나. 딕셔너리 관리, 노드 관리 등에 소요되는 M/M 비용 vs 🙋‍♀️AWS Elasticsearch Service 비용🙋‍♀️ 프로덕션은 AWS Elasitcsearch Service 를 이용하고, 스테이징은 AWS EC2 에 docker-elk 를 띄우는 방향으로 가기로 했다. 해야 할 일은 아래와 같았다. 1. AWS Elasticsearch Service 생성하기 2. docker-logstash를 AWS EC2 인스턴스에 띄우기 AWS Elasticsearch Service 생성하기 (테스트 기준으로.. 2021. 4. 20.
728x90
반응형