본문 바로가기
캡스톤

elasticsearch 자료조사

by 박정률 2018. 3. 12.

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