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
전치사, 조사, 관서, 접속사 등과 같이 주제색인어로서 의미가 없는 단어
기타