오픈소스 검색엔진인 Elasticsearch 어떻게 저장하고 조회하는지 검색엔진의 개념에 대해서 간단히 살펴보고, Node.js 로 구현된 아주 간단한 예제를 소개합니다.
- 검색엔진과 Elasticsearch 소개
- Elasticsearch에서의 색인
- Elasticsearch에서의 조회
- Node.js 로 구현된 예제 소개
* 자바카페
자바카페 페이스북 : https://www.facebook.com/groups/javacafe/
자바카페 기술 블로그 : http://tech.javacafe.io/
오픈소스 검색엔진인 Elasticsearch 어떻게 저장하고 조회하는지 검색엔진의 개념에 대해서 간단히 살펴보고, Node.js 로 구현된 아주 간단한 예제를 소개합니다.
- 검색엔진과 Elasticsearch 소개
- Elasticsearch에서의 색인
- Elasticsearch에서의 조회
- Node.js 로 구현된 예제 소개
* 자바카페
자바카페 페이스북 : https://www.facebook.com/groups/javacafe/
자바카페 기술 블로그 : http://tech.javacafe.io/
– Elastic stack과 Data pipeline의 개념
– 데이터의 종류와 형태 / Document 데이터 모델링 (mapping, data type)
– 분산 데이터 저장소 관점에서의 Elasticsearch (index, shard & replica, segment)
https://learningspoons.com/course/detail/elastic-stack/
Approximate Vector Search at Scale, With Application to Image Search - SciPY ...Wakana Nogami
Mercari provides an image search feature, which makes it possible for users to find similar items by image. This talk describes how we implemented similar image search over 100s of millions of images, in a way that is accurate. We will also highlight the techniques we used to keep the system efficient and update to date.
Talk about Apache Nutch on ApacheCon Europe 2014:
http://sched.co/1nyYa7b
http://events.linuxfoundation.org/sites/events/files/slides/aceu2014-snagel-web-crawling-nutch.pdf
Talk given for the #phpbenelux user group, March 27th in Gent (BE), with the goal of convincing developers that are used to build php/mysql apps to broaden their horizon when adding search to their site. Be sure to also have a look at the notes for the slides; they explain some of the screenshots, etc.
An accompanying blog post about this subject can be found at http://www.jurriaanpersyn.com/archives/2013/11/18/introduction-to-elasticsearch/
A brief presentation outlining the basics of elasticsearch for beginners. Can be used to deliver a seminar on elasticsearch.(P.S. I used it) Would Recommend the presenter to fiddle with elasticsearch beforehand.
■ 일시 및 장소
2023년 6월 22일 목요일 19:00 ~
■ 아젠다
트위터의 추천 시스템 파헤치기
2023년 4월 5일 오픈소스로 공개된 트위터의 추천 시스템에 대해서 살펴봅니다.
트위터의 개인화/랭킹 후보군을 만들어내는 추천 알고리즘부터, 이를 지탱하는 파이프라인까지 모두 소개합니다.
■ 발표자
카카오스타일 데이터사이언티스트 이명휘
– Elastic stack과 Data pipeline의 개념
– 데이터의 종류와 형태 / Document 데이터 모델링 (mapping, data type)
– 분산 데이터 저장소 관점에서의 Elasticsearch (index, shard & replica, segment)
https://learningspoons.com/course/detail/elastic-stack/
Approximate Vector Search at Scale, With Application to Image Search - SciPY ...Wakana Nogami
Mercari provides an image search feature, which makes it possible for users to find similar items by image. This talk describes how we implemented similar image search over 100s of millions of images, in a way that is accurate. We will also highlight the techniques we used to keep the system efficient and update to date.
Talk about Apache Nutch on ApacheCon Europe 2014:
http://sched.co/1nyYa7b
http://events.linuxfoundation.org/sites/events/files/slides/aceu2014-snagel-web-crawling-nutch.pdf
Talk given for the #phpbenelux user group, March 27th in Gent (BE), with the goal of convincing developers that are used to build php/mysql apps to broaden their horizon when adding search to their site. Be sure to also have a look at the notes for the slides; they explain some of the screenshots, etc.
An accompanying blog post about this subject can be found at http://www.jurriaanpersyn.com/archives/2013/11/18/introduction-to-elasticsearch/
A brief presentation outlining the basics of elasticsearch for beginners. Can be used to deliver a seminar on elasticsearch.(P.S. I used it) Would Recommend the presenter to fiddle with elasticsearch beforehand.
■ 일시 및 장소
2023년 6월 22일 목요일 19:00 ~
■ 아젠다
트위터의 추천 시스템 파헤치기
2023년 4월 5일 오픈소스로 공개된 트위터의 추천 시스템에 대해서 살펴봅니다.
트위터의 개인화/랭킹 후보군을 만들어내는 추천 알고리즘부터, 이를 지탱하는 파이프라인까지 모두 소개합니다.
■ 발표자
카카오스타일 데이터사이언티스트 이명휘
[ http://infiniflux.com/download ]
The world's fastest time series DBMS.
What is InfiniFlux?
1) InfiniFlux is a time-series database which performs real-time data processing, i.e., data are inserted at high speed, retrieved and analyzed without elapsed time.
2) InfiniFlux also compresses and stores data in real-time. Its query language and syntax complies with the SQL standard. The extended SQL syntax provides additional features such as the text search tool.
2014년 5월 28일 일본에서 진행된 AWS 기술 웨비나의 발표 자료를 한국의 정윤진 솔루션스 아키텍트가 한글로 번역한 자료입니다. 웨비나 당시와 현재의 내용이 상이한 부분이 있을 수 있으니 자료 열람에 이 점 참고하시기 바라며, 혹 내용에 대한 문의사항이 있으신 경우 info-kr@amazon.com으로 연락 부탁드리겠습니다.
REST에 대한 내용을 정리한 PPT 입니다.
많은 내용이 있지만 축약 또는 이해되는 내용만 정리를 하려고 하다보니 빠진 부분이 있을 수 있습니다.
REST는
1. URI와 HTTP Method를 이용해 객체화된 서비스에 접근하는 것.
2. HTTP URI로 잘 표현된, 리소스에 대한 행위를 HTTP Method에 정의 리소스에 내용은 json, xml, yaml 등의 다양한 언어로 정의.
3. 하나의 URI는 하나의 고유한 리소스를 대표하도록 설계된다는 개념.* REST는 표준이 아님 + REST는 프로토콜이 아님.
결론적으로 REST API를 사용하는 궁극적인 목적은
서로 다른 플랫폼(OS, 개발언어)에서 데이터를 주고받기 위해서와 범용 인터페이스(HTTP/URI)를 만들어서 각 API를 독립적으로 배포하기 위함이다.
2. Lucene
Elasticsearch
Lucene은 확장 가능한 고성능
정보검색(IR, Information
Retrieval) 라이브러리이다.
Elasticsearch는 확장성이 뛰어난 Apache Lucene 프로젝
트에 기반을 둔 오픈소스 풀텍스트 검색 및 분석엔진입니다.
Elasticsearch 란?
- JSON document
- RESTful APIs
- Distributed
- Multi-tenancy
- Near Real Time
4. 데이터 원본 정제 색인 평가
RDBMS
OPEN-API
제휴DB
크롤링
자체생산
활용
데이터 (비)정규화
맵핑구조
데이터 클렌징
Logstash
Bulk API
기타
Precision/Recall
Explain
Index Time
Query Time
웹서비스
모바일 서비스
기타
1 2 3 4 5
검색서비스 개발과정
5. 1. Term : 분석과정을 거치고 저장된 토큰의 최소단위를 텀(Term)이라고 한다.
2. Inverted Index : * 대용량 텍스트 검색을 위해 고안된 자료구조
Term Doc 1 Doc 2 Doc 3 출현빈도
quick O O O 3
brown O 1
예) “Quick brown”
주요용어 및 개념
6. 1. 쿼리(Query)와 필터(Filter)
구분 쿼리(Query) 필터(Filter)
검색대상 전문검색(Full Text) 바이너리 구분(Y/N)
점수계산 O X
캐싱 X O
응답속도(성능) 느림 빠름
2. 쿼리와 필터 비교
• 엘라스틱서치에서 데이터를 찾고 구분하는 기능은 쿼리와 필터로 나뉨
• 쿼리와 필터는 모두 JSON형의 QueryDSL로 표현한다.
• 필터는 문서의 수를 줄이는데 목표로 한다.
주요용어 및 개념
7. 1. 정확율(precision), 재현율(recall)
: 정보검색을 평가하는데 이용되는 지표
> 정확율 : 검색된 정보가 얼마나 적합하고 관련있는 문서의 비율
> 재현율 : 관련있는 문서들 중 실제로 검색된 문서의 비율
예) 대학생선교회, 대학생선교회
주요용어 및 개념
8. 1. 이음 동의어 (Synonyms)
2. 연관어
단어 동의어(유의어)
초등학생 초딩, 초등생
파리바게트 빠리바게트, 파리바게뜨
콘크리트 공구리
휴대폰 휴대전화, 핸드폰
단어 연관어
문재인 100대 국정과제
빅뱅 지드래곤, 태양
이선희 히든싱어 시즌3
주요용어 및 개념
9. 1. RDBMS VS Elasticsearch
RDBMS Elasticsearch
Database Index
Table Type (ES 7.0 deprecated)
Row Document
Column Field
Schema Mapping
SQL Query DSL
RDBMS와 데이터 구조 비교
10. 1. TF (Term Frequency)
- 한 문서에서 같은 검색어(term)가 많이 나타날수록 높은점수 부여
2. IDF (Inverse Document Frequency)
- 해당term이 전체 Document set에 얼마나 나왔는지 측정
- 흔한 단어일수록 idf가 낮아지고 찾아보기 힘든 단어일수록 idf 높아짐
3. COORD (Coordination factor)
- 검색질의가 여러 개의 term으로 이루어졌을경우 문서에서 매치되는 term 개수가
많을수록 높은점수 부여
4. lengthNorm
- term이 크기가 작은 필드에서 출현할 수록 높은점수 부여
5. Query Time Boosting
Scoring 계산
11. Cluster
Master Node Data Node Data Node
0
3
4 2
1
3 1
4
2
0
Shard (데이터 검색단위 인스턴스)
Replica (샤드의 복사본)
Primary shard
Replica shard
인덱스 생성 또는 삭제
노드추적, 클러스터에 할당할 샤드결정
및 클러스터 상태관리
실제 데이터가 저장되는 노드
CRUD, 검색 및 집계와 같은 데이터
관련 작업수행
Elasticsearch 아키텍처
12. Cluster
Node1 Node2
0
3
2 2
1
3
0
9200 9201
9300
9301
1
9200번 부터 REST-API를 위한 HTTP통신포트 할당
9300번 부터 노드간 바인딩을 위한 포트로 할당
같은 클러스터 이름을 가지고
실행된 노드는 자동으로 바인딩
노드바인딩
23. {
"settings": {
"analysis": {
"filter": {
"my_stop": {
"type": "stop",
"stopwords": ["and", "is", “the"]
}
}
}
}
}
1. 불용어 처리
2. 동의어 처리
https://www.elastic.co/guide/en/elasticsearch/reference/current/a
nalysis-synonym-tokenfilter.html
전치사, 조사, 관서, 접속사 등과 같이 주제색인어로서 의미가 없는 단어
기타