SlideShare a Scribd company logo
Elasticsearch Server
chapter5. 검색 결과 향상
개요
• 아파치 루씬의 점수 계산
• elasticsearch가 제공하는 스크립트 기능
• 다양한 언어를 사용한 자료 색인과 검색
• 반환되는 다큐먼트의 점수에 영향을 미치는 다양한 질의 사용
• 색인 과정에서 중요도 사용
• 의미가 동일한 단어
• 특정 다큐먼트가 반환된 이유 점검
• 점수 계산과 관련한 세부사항 점검
1. Apache Lucene scoring
• 점수는 질의에 대한 다큐먼트의 관련성의 수치
• 기본 아파치 루씬의 점수 계산 알고리즘은 TD/IDF

(Term Frequency - Inverse Document Frequency)

• 다큐먼트가 동일 하더라도 

질의를 할 때마다 계산 점수가 다르다
Score properties
• 다큐먼트 중요도(Document boost)
색인과정에서 다큐먼트에 주어진 중요도
• 필드 중요도(Field boost)
질의와 색인 과정에서 필드에 주어진 중요도
• 조정지수(Coord)
다큐먼트가 포함한 키워드 수에 기반한 값
• IDF(Inverse Document Frequency)
해당 키워드가 얼마나 드문지를 나타내는 값
• 길이기준(Length norm)
필드가 포함한 키워드 수에 기반. 필드가 길수록 작아진다.
• Term frequency
해당 키워드가 도큐먼트에 출현하는 빈도
기본 점수 계산 공식
score(q,d)=coord(q,d)∗queryNorm(q)∗∑(tf (tind)∗idf (t)2 ∗boost(t)∗norm(t,d)) 

• 일치되는 키워드가 드물수록 다큐먼트 점수가 높아질 것이다.
• 다큐먼트 필드가 작을수록 다큐먼트 점수가 높아질 것이다.
• 필드에 대한 중요도가 높을수록 다큐먼트 점수가 높아질 것이다.
• ref : https://lucene.apache.org/core/4_0_0/core/org/apache/lucene/search/similarities/
TFIDFSimilarity.html
2. Scripting 기능
• elasticsearch는 스크립트작성을 위해 여러 언어를 지원
• 기본적으로 MVEL사용
• javascript, python, groovy지원
3. 다양한 언어로 내용 검색
• 다국어 언어 자료에 대한 다양한 분석기를 선택 가능
• 언어에 종류에 상관없는 어간 추출 분석 제공
여러 언어를 처리하기
• 여러 언어를 처리하는 방법
언어별로 나눠 다른 타입에 다큐먼트를 저장
언어별로 분리된 색인에 다큐먼트를 저장
단일 다큐먼트의 여러 필드에 언여벌로 저장
여러 언어를 감지하기
• 언어 감지 라이브러리
• 아파치 티카(Apache Tika)
• 랭귀지 디텍션(Language detection)
• 텍스트가 길어질수록 언어 감지가 정확해진다.
중요도로 점수에 영향을 미치기
• 질의 중요도
• 질의 시 query와 field에 중요도 설정
• 색인 시점의 중요도
• 색인 시점에 중요도 설정
• 질의와 독립적인 중요도 값을 가짐
중요도를 질의에 추가
{

"query" : {
"prefix" : {
"title" : {
"value" : "cri",
"boost" : 3.0
}
}
}
}
Demo - boost query
중요도를 질의에 추가
{
"query": {
"constant_score": {
"query": {
"query_string": {
"query": "available:false author:heller"
}
}
}
}
}
Demo - constant_score
중요도를 색인시점에 추가
{
"title" : "The Complete Sherlock Holmes",
"author" : "Arthur Conan Doyle",
"year": 1936
}
중요도를 색인시점에 추가
{
"title" : "The Complete Sherlock Holmes",
"author" : {
"_value" : "Arthur Conan Doyle",
"_boost" : 10.0,
},
"year": 1936
}
6. 의미가 동일한 단어
• 하나의 단어를 검색, 의미가 동일하거나 유사한 단어 매칭
• 예를들어 crime검색 시 ‘Crime and Punishment’

뿐만이 아니라, criminality나 abuse단어도

동의어로 설정해 검색시 적용
• 동의어가 바뀔 때마다 자료 재색인 필요
synonym필터
• analyzer에 synonym필터 적용
• 매핑에 synonym프로퍼티 추가
허용되는 동의어 형식
• 명시적인 동의어
• criminality, wars => crime
• abuse => punishment
• 동의어 확장
• one, two, three => one, two, three
7. 질의 해설 기능 이해
Analyze API(Testing Analyzers)
elasticsearch이 어떻게 tokenize하고
index에 어떻게 저장되는지 이해하기가 힘들다.
그래서 elasticsearch는 analyze API를 제공(디버깅용도)
참고 : https://www.elastic.co/guide/en/elasticsearch/guide/current/analysis-intro.html?q=_analy
Demo - analyze API
7. 질의 해설 기능 이해
Explain API
쿼리나 특정 도큐먼트가 어떻게 점수가 계산되어지는지
알아보는 기능 제공
참고 : https://www.elastic.co/guide/en/elasticsearch/reference/current/search-explain.html?q=_explain
Demo - explain API

More Related Content

PPTX
엘라스틱 서치 세미나
PDF
Ch1 일래스틱서치 클러스터 시작
PDF
일래스틱 서치 ch7. 일래스틱 서치 클러스터 세부사항
PPTX
elasticsearch
PPTX
Fundamental of ELK Stack
PPTX
elasticsearch_적용 및 활용_정리
PPTX
20151022 elasticsearch 적용및활용_송준이_sds발표용
PDF
Meteor Elasticsearch 연동 Trial
엘라스틱 서치 세미나
Ch1 일래스틱서치 클러스터 시작
일래스틱 서치 ch7. 일래스틱 서치 클러스터 세부사항
elasticsearch
Fundamental of ELK Stack
elasticsearch_적용 및 활용_정리
20151022 elasticsearch 적용및활용_송준이_sds발표용
Meteor Elasticsearch 연동 Trial

What's hot (20)

PPTX
차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js
PDF
Elastic Search (엘라스틱서치) 입문
PPTX
검색 서비스 간략 교육
PDF
XECon+PHPFest2014 발표자료 - ElasticSearch를 이용한 통합검색 구축방법 - 김훈민
PPTX
201804 neo4 j_cypher_guide
PPTX
Logstash, ElasticSearch, Kibana
PDF
엘라스틱서치, 로그스태시, 키바나
PPTX
검색엔진이 데이터를 다루는 법 김종민
PDF
집단 지성 (Programming collective intelligence) 스터디: Chapter 4 - Searching & Ranking
PPTX
Apache solr소개 20120629
PDF
Elastic stack
PPTX
Mongo DB 완벽가이드 - 4장 쿼리하기
PDF
Feature perf comp_v1
PDF
SPARK SQL
PPTX
Mongo DB로 진행하는 CRUD
PDF
Learning spark ch1-2
PPTX
Tajo and SQL-on-Hadoop in Tech Planet 2013
PPTX
Elasticsearch development case
PPTX
Vectorized processing in_a_nutshell_DeView2014
PPTX
mongodb와 mysql의 CRUD 연산의 성능 비교
차곡차곡 쉽게 알아가는 Elasticsearch와 Node.js
Elastic Search (엘라스틱서치) 입문
검색 서비스 간략 교육
XECon+PHPFest2014 발표자료 - ElasticSearch를 이용한 통합검색 구축방법 - 김훈민
201804 neo4 j_cypher_guide
Logstash, ElasticSearch, Kibana
엘라스틱서치, 로그스태시, 키바나
검색엔진이 데이터를 다루는 법 김종민
집단 지성 (Programming collective intelligence) 스터디: Chapter 4 - Searching & Ranking
Apache solr소개 20120629
Elastic stack
Mongo DB 완벽가이드 - 4장 쿼리하기
Feature perf comp_v1
SPARK SQL
Mongo DB로 진행하는 CRUD
Learning spark ch1-2
Tajo and SQL-on-Hadoop in Tech Planet 2013
Elasticsearch development case
Vectorized processing in_a_nutshell_DeView2014
mongodb와 mysql의 CRUD 연산의 성능 비교
Ad

Viewers also liked (17)

PPT
Apresentação uniderp
PDF
Valentine Promo
PDF
Next Level Software Integration: Bridging the Gap Between Gmail and Salesforc...
ODT
function2
PDF
Festival City Noida Bakhshi Properties
PDF
Lifecycleofhostdeployedwithforemanandautomated
PPT
Doriana Capenti Tecate
PPTX
디자인매니지먼트2
DOCX
Prueba 1
PPTX
Miley cyrus digipak
PPT
La Tierra, planeta del sistema solar
PPTX
Simple Finance Presentation
PDF
Oracle Enterprise manager 13c Installation
PPTX
Photography evaluation
PPTX
My music video idea
PPTX
Oracle business intelligence overview
Apresentação uniderp
Valentine Promo
Next Level Software Integration: Bridging the Gap Between Gmail and Salesforc...
function2
Festival City Noida Bakhshi Properties
Lifecycleofhostdeployedwithforemanandautomated
Doriana Capenti Tecate
디자인매니지먼트2
Prueba 1
Miley cyrus digipak
La Tierra, planeta del sistema solar
Simple Finance Presentation
Oracle Enterprise manager 13c Installation
Photography evaluation
My music video idea
Oracle business intelligence overview
Ad

Similar to Elasticsearch server Chapter5 (20)

PDF
정보검색과 Elasticsearch (크몽)
PPTX
엘라스틱서치 이해하기 20160612
PDF
Elasticsearch를 활용한 GIS 검색
PPTX
엘라스틱서치 이해하기 20160613
PPTX
Elastic Search Performance Optimization - Deview 2014
PDF
1. boolean 검색
PDF
Elasticsearch 엘라스틱서치 (검색서비스) 에 대해 알아보자.txt
PDF
[215]네이버콘텐츠통계서비스소개 김기영
PDF
Information Retrieval - Modeling
PDF
제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [중고책나라] : 실시간 데이터를 이용한 Elasticsearch 클러스터 최적화
PDF
Query suggestions as summarization in exploratory search
PDF
전문 검색 기술
PDF
Elastic Stack & Data pipeline (1장)
PDF
Partner Story(Megazone): 금융사 실전 프로젝트 DeepDive
PDF
[4차]구글 알고리즘 분석(151106)
PPTX
Elasticsearch와 Bash script를 활용한 논문 검색
PDF
What’s Evolving in the Elastic Stack
PDF
Information Retrieval - Evaluation
PDF
Web Analytics at Scale with Elasticsearch @ naver.com - Part 2 - Lessons Learned
PDF
제1장 정보검색소개
정보검색과 Elasticsearch (크몽)
엘라스틱서치 이해하기 20160612
Elasticsearch를 활용한 GIS 검색
엘라스틱서치 이해하기 20160613
Elastic Search Performance Optimization - Deview 2014
1. boolean 검색
Elasticsearch 엘라스틱서치 (검색서비스) 에 대해 알아보자.txt
[215]네이버콘텐츠통계서비스소개 김기영
Information Retrieval - Modeling
제 17회 보아즈(BOAZ) 빅데이터 컨퍼런스 - [중고책나라] : 실시간 데이터를 이용한 Elasticsearch 클러스터 최적화
Query suggestions as summarization in exploratory search
전문 검색 기술
Elastic Stack & Data pipeline (1장)
Partner Story(Megazone): 금융사 실전 프로젝트 DeepDive
[4차]구글 알고리즘 분석(151106)
Elasticsearch와 Bash script를 활용한 논문 검색
What’s Evolving in the Elastic Stack
Information Retrieval - Evaluation
Web Analytics at Scale with Elasticsearch @ naver.com - Part 2 - Lessons Learned
제1장 정보검색소개

More from Mungyu Choi (18)

PPTX
HTTP 완벽가이드 - ch15. 엔터티, 인코딩 (Entities and Encoding)
PDF
HTTP 완벽가이드 - ch5. web server
PDF
learning spark - Chatper8. Tuning and Debugging
PDF
Chapter3 - learning spark
PDF
JVM과 톰캣 튜닝
PDF
조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝
PDF
Nodejs 트래픽 라우팅, 파일 서비스, 미들웨어
PDF
nodejs websocket & SOCKET.IO
PDF
정렬(버블정렬,선택정렬,삽입정렬)
PDF
c++ API디자인 ch9. 발표자료
PDF
b+tree
PDF
PDF
hadoop ch1
PDF
A tour of go
PDF
Ch11. server infra
PDF
대규모 서비스를 지탱하는 기술 ch6
PDF
4.1 단일호스트의 부하
PDF
Chap4_2
HTTP 완벽가이드 - ch15. 엔터티, 인코딩 (Entities and Encoding)
HTTP 완벽가이드 - ch5. web server
learning spark - Chatper8. Tuning and Debugging
Chapter3 - learning spark
JVM과 톰캣 튜닝
조대협의 서버 사이드 - 대용량 아키텍처와 성능튜닝
Nodejs 트래픽 라우팅, 파일 서비스, 미들웨어
nodejs websocket & SOCKET.IO
정렬(버블정렬,선택정렬,삽입정렬)
c++ API디자인 ch9. 발표자료
b+tree
hadoop ch1
A tour of go
Ch11. server infra
대규모 서비스를 지탱하는 기술 ch6
4.1 단일호스트의 부하
Chap4_2

Elasticsearch server Chapter5

  • 2. 개요 • 아파치 루씬의 점수 계산 • elasticsearch가 제공하는 스크립트 기능 • 다양한 언어를 사용한 자료 색인과 검색 • 반환되는 다큐먼트의 점수에 영향을 미치는 다양한 질의 사용 • 색인 과정에서 중요도 사용 • 의미가 동일한 단어 • 특정 다큐먼트가 반환된 이유 점검 • 점수 계산과 관련한 세부사항 점검
  • 3. 1. Apache Lucene scoring • 점수는 질의에 대한 다큐먼트의 관련성의 수치 • 기본 아파치 루씬의 점수 계산 알고리즘은 TD/IDF
 (Term Frequency - Inverse Document Frequency)
 • 다큐먼트가 동일 하더라도 
 질의를 할 때마다 계산 점수가 다르다
  • 4. Score properties • 다큐먼트 중요도(Document boost) 색인과정에서 다큐먼트에 주어진 중요도 • 필드 중요도(Field boost) 질의와 색인 과정에서 필드에 주어진 중요도 • 조정지수(Coord) 다큐먼트가 포함한 키워드 수에 기반한 값 • IDF(Inverse Document Frequency) 해당 키워드가 얼마나 드문지를 나타내는 값 • 길이기준(Length norm) 필드가 포함한 키워드 수에 기반. 필드가 길수록 작아진다. • Term frequency 해당 키워드가 도큐먼트에 출현하는 빈도
  • 5. 기본 점수 계산 공식 score(q,d)=coord(q,d)∗queryNorm(q)∗∑(tf (tind)∗idf (t)2 ∗boost(t)∗norm(t,d)) 
 • 일치되는 키워드가 드물수록 다큐먼트 점수가 높아질 것이다. • 다큐먼트 필드가 작을수록 다큐먼트 점수가 높아질 것이다. • 필드에 대한 중요도가 높을수록 다큐먼트 점수가 높아질 것이다. • ref : https://lucene.apache.org/core/4_0_0/core/org/apache/lucene/search/similarities/ TFIDFSimilarity.html
  • 6. 2. Scripting 기능 • elasticsearch는 스크립트작성을 위해 여러 언어를 지원 • 기본적으로 MVEL사용 • javascript, python, groovy지원
  • 7. 3. 다양한 언어로 내용 검색 • 다국어 언어 자료에 대한 다양한 분석기를 선택 가능 • 언어에 종류에 상관없는 어간 추출 분석 제공
  • 8. 여러 언어를 처리하기 • 여러 언어를 처리하는 방법 언어별로 나눠 다른 타입에 다큐먼트를 저장 언어별로 분리된 색인에 다큐먼트를 저장 단일 다큐먼트의 여러 필드에 언여벌로 저장
  • 9. 여러 언어를 감지하기 • 언어 감지 라이브러리 • 아파치 티카(Apache Tika) • 랭귀지 디텍션(Language detection) • 텍스트가 길어질수록 언어 감지가 정확해진다.
  • 10. 중요도로 점수에 영향을 미치기 • 질의 중요도 • 질의 시 query와 field에 중요도 설정 • 색인 시점의 중요도 • 색인 시점에 중요도 설정 • 질의와 독립적인 중요도 값을 가짐
  • 11. 중요도를 질의에 추가 {
 "query" : { "prefix" : { "title" : { "value" : "cri", "boost" : 3.0 } } } }
  • 12. Demo - boost query
  • 13. 중요도를 질의에 추가 { "query": { "constant_score": { "query": { "query_string": { "query": "available:false author:heller" } } } } }
  • 15. 중요도를 색인시점에 추가 { "title" : "The Complete Sherlock Holmes", "author" : "Arthur Conan Doyle", "year": 1936 }
  • 16. 중요도를 색인시점에 추가 { "title" : "The Complete Sherlock Holmes", "author" : { "_value" : "Arthur Conan Doyle", "_boost" : 10.0, }, "year": 1936 }
  • 17. 6. 의미가 동일한 단어 • 하나의 단어를 검색, 의미가 동일하거나 유사한 단어 매칭 • 예를들어 crime검색 시 ‘Crime and Punishment’
 뿐만이 아니라, criminality나 abuse단어도
 동의어로 설정해 검색시 적용 • 동의어가 바뀔 때마다 자료 재색인 필요
  • 18. synonym필터 • analyzer에 synonym필터 적용 • 매핑에 synonym프로퍼티 추가
  • 19. 허용되는 동의어 형식 • 명시적인 동의어 • criminality, wars => crime • abuse => punishment • 동의어 확장 • one, two, three => one, two, three
  • 20. 7. 질의 해설 기능 이해 Analyze API(Testing Analyzers) elasticsearch이 어떻게 tokenize하고 index에 어떻게 저장되는지 이해하기가 힘들다. 그래서 elasticsearch는 analyze API를 제공(디버깅용도) 참고 : https://www.elastic.co/guide/en/elasticsearch/guide/current/analysis-intro.html?q=_analy
  • 22. 7. 질의 해설 기능 이해 Explain API 쿼리나 특정 도큐먼트가 어떻게 점수가 계산되어지는지 알아보는 기능 제공 참고 : https://www.elastic.co/guide/en/elasticsearch/reference/current/search-explain.html?q=_explain