본문 바로가기

elasticsearch3

Elasticsearch를 이용한 문서 유사도 검색과 Springboot를 통한 구현 (1) 문서 유사도? 기본적으로 문서가 얼마나 유사하는가에 대한 계산은 Cosine 유사도로 판단하게 된다. 그 이전에 사용하는 개념이 tf-idf인데 그 설명은 위키피디아에 다음과 같이 설명되어 있다. TF-IDF(Term Frequency - Inverse Document Frequency)는 정보 검색과 텍스트 마이닝에서 이용하는 가중치로, 여러 문서로 이루어진 문서군이 있을 때 어떤 단어가 특정 문서 내에서 얼마나 중요한 것인지를 나타내는 통계적 수치이다. 문서의 핵심어를 추출하거나, 검색 엔진에서 검색 결과의 순위를 결정하거나, 문서들 사이의 비슷한 정도를 구하는 등의 용도로 사용할 수 있다. TF(단어 빈도, term frequency)는 특정한 단어가 문서 내에 얼마나 자주 등장하는지를 나타내는 값.. 2020. 9. 5.
Elasticsearch Type에 대해서 Nosql에서 스키마는? 엘라스틱 서치는 만들어 질 때부터 Nosql을 지향했고 Nosql의 특징은 "기본적"으로는 Schemaless라는 것이다. 스키마가 고정되어있지 않아서 비정형 데이터를 처리하는데에 용이하고, 가용성이 증가하고 확장성에도 유리하다. (확장성의 경우 하나의 클러스터를 여러개의 서버에 나눌 수 있도록 설계되었다.) 하지만 Nosql도(대표적으로 MongoDB) 데이터를 정형화해서 저장해야 하는 경우가 있기 때문에 Schema를 정해서 저장하기도 하며 이 경우에 그 정보는 어플리케이션(DB가 아닌것)이 가지고 있다. Elasticsearch Type이란? Elasticsearch도 기본적으로는 Nosql구조를 가지고 있기 때문에 스키마가 없지만 정형화된 틀을 만들어 줄 수 있다. 그것을.. 2020. 7. 27.
MySql에서 ElasticSearch 데이터 이동(systemd 이용) 기본적으로 ElasticSearch를 사용하기 위해서는 어디에선가 데이터를 가져와 집어넣어야 한다. 가장 원론적인 방식은 일일이 데이터를 손으로 입력하는 방식이겠지만 사실 이 방식은 말이 안된다. 그래서 일반적으로 Logstash를 파이프라인으로 이용하는데 아래 그림과 같다. 여러가지 데이터 소스가 존재하는데 CSV파일에서 가져올수도 있고 Mysql, Kafka등 굉장히 여러가지 소스가 있다. 아무튼....설치 하는 과정은 지나가도록 하고 pipeline을 만들어주기 위한 logstash 설정법을 설명하겠다. 당연히 elastisearch와 logstash를 하기 위해서는 JAVA가 깔려있어야 하고 Mysql이 설치되어 있어야 한다. 그리고 설정파일을 작성해줘야 한다. 지금은 Ubuntu를 기준으로 설정.. 2020. 7. 15.