Tuesday, May 10, 2016

AngularJS에서 ElasticSearch 사용하기(데이터 검색 및 저장)

ElasticSearch


현재 참여하고 있는 빅데이터 프로젝트에서
수집된 data를 DB에 저장하지 않고
엘라스틱서치에 저장하고 있습니다.
수집된 data를 elasticsearch에 저장하면
어느 정도 선까지는 자동으로 indexing을
해주고 그럼으로 인해 검색에도 유리하다고
합니다. 그리고 무엇보다 좋았던 건 저희가
사용하고 있던 다른 오픈소스보다 설치나
실행이 쉬웠습니다 ㅎㅎㅎ
하지만 역시 문제는 사용 방법을 알아야
되고, 최종적으로는 ElasticSearch에서
제공되는 기능을 AngularJS에서 사용해서
화면에 결과로 보여줘야 한다는 점입니다.

위에 책을 보면서 study를 하고 있는데
어제 ElasticSearch에 data가 저장되는
구조에 대해 이해하는데 결정적인 역할을
해서 올려 봤습니다 ㅎㅎ 필요한 내용 딱
두 장만 읽은게 다입니다 ㅎㅎ
앞으로도 많이 참고해야겠지요~

그리고 구글링을 통해 찾은 AngularJS
예제를 통해 웹 화면에서 ElasticSearch에
붙어 data를 저장하고 검색하는 예제도
수행을 해봤습니다~ ElasticSearch
명령어 체계를 좀 더 이해할 필요가
있을 거 같습니다.

AngularJS


앵귤러JS에서 ElasticSearch를
호출할 때 사용하는 함수입니다.
검색과 data 저장하는 함수입니다.


data를 엘라스틱서치에 저장하는
함수입니다. 일단 하드코딩으로
했지만 최종적으로 웹 화면에서
해당 값들을 입력 받을 겁니다.

그리고 위에 저장된 값을 조회하는
함수는 아래에 있습니다.


먼저 위에 예제는 EalsticSearch에
저장된 data를 조회할 때 특정 조건을
주는 예제입니다. ElasticSearch에
데이터가 저장되면 index, type, id의
값들이 생성되는데 사용자가 직접
입력할 수도 있고, 저장할 때 입력해 주지
않으면 엘라스틱서치에서 자동으로
생성을 해줍니다. 그럼 이 때 생성된
값들로 data를 조회하려고 할 때
AngularJS에서는 위의 주석처리된
내용들처럼 index를 조회할 때는

index : 조회하려는 index값

​타입으로 조회를 하시려면

type : 조회하려는 type 값

형식으로 지정을 해줘야 됩니다.
그리고 실질적인 data는 _source
키 밑에 저장이 되는데 이 값으로
data 조회를 하기 위해서는

q: 검색어

형태로 주면 _source 키 밑에
data를 대상으로 검색이 됩니다.

그리고 최종 결관는 위에 소스
에서 정상처리 기준으로 
resp.hits.hits 로 접근하면 됩니다~


위에 화면이 elasticsearch에
저장된 data를 조회한 결과입니다.

indexrk 값이 2014-12-31 인 값이
처음에 저장한 data입니다~

No comments:

Post a Comment