1. server - elastic search 연동방법
server 가 python인 경우 - Rest API(엘라스틱서치 내에 명령어)를 사용하는 것은 불편하지만, Python ES API를 이용하면 elasticsearch 를 좀 더 편하게 사용할 수 있다.
shell 에서 curl 출력결과는 단순 문자열이기 때문에 후처리를 하기가 어렵다. 따라서 python 을 이용하면 편리하다.
python 을 이용하게 되면 doc 변수의 type 은 string이 아닌 map 형태이다.
링크 : http://jason-heo.github.io/elasticsearch/2016/07/16/elasticsearch-with-python.html
2. elastic search algorithm
엘라스틱서치는 기본적으로 Hash map 을 이용하기 때문에 amortized O(1) 의 시간복잡도로 검색이 가능하다.
우리가 사용하게될 매칭은 단순하게 키워드-시간 뿐이므로 어렵지 않을 듯.
엘라스틱서치는 역인덱싱(inverted index)를 이용한다.
역인덱싱이란 원본데이터가 id=1 인 문서와 , id=2 인 문서 안에 데이터 a,b,c 가 들어있다면 저장은 역인덱싱으로 데이터 a : 1,2 에서 등장, b: 1,2 에서등장, c : 1,2 에서 등장 의 형태로 저장한다.
3. 인덱싱 설계(엘라스틱서치의 인덱싱이란 , db의 데이터베이스)
* 인덱싱 할 테이블과 컬럼을 정한다.
* 원본 데이터를 어떤 형식으로 저장할 것인지 결정
document {
keyword : object,face
time :
}
들어오게될 쿼리의 형태 : keyword-time
“query”:{
“bool” : {
“must”:[
{“match” : {“video1.keyword” : “keyword1”}}
}
]
}
}
최신순 정렬도 가능.
“sort”:[
{“video.time” : {“order”: “desc”}},
]
참조링크 : https://www.slideshare.net/xpressengine/xecon-phpfest2014elasticsearch
'캡스톤' 카테고리의 다른 글
1. Intro to Estimote APIs (0) | 2018.03.30 |
---|---|
12.18 회의록 (0) | 2017.12.20 |