TIL :: Elastic Search
빠른 검색을 할 수 있고 많이 사용되는 엘라스틱써치를 사용해보기 위해 공부를 해보았다. 아직 코드는 작성하진 않았지만, 뭐 때문에 쓰는지? 어떤 장점이 있는지? 에 대해 공부를 했고, 다음날부터 코드를 작성해보며 테스트를 해볼 예정이다.
우선 ElasticSearch의 장점은 무엇이 있을까 ?
1. 오픈소스 검색엔진이다. 그래서 많은 사람들이 사용을 해서 커뮤니티등을 통해 많이 개선되고 발전시키고 있다.
2. 내용전체에 특정 단어가 포함된 문서를 검색할 수 있다. 기능별,언어별 플러그인을 적용할 수도 있다.
3. 로그데이터를 수집해서 통계 분석에 활용할 수 있다. kibana를 연결하면 실시간으로 로그를 분석하고 시각화 할 수 있다.
4. 정형화되지 않은 문서들도 자동으로 색인하고 검색할 수 있다.
5.http기반의 Restful을 활용하고 요청/응답에 JSON을 사용해 개발언어,운영체제,시스템에 관계없이 다양한곳에서 활용이 가능하다.
그럼 ElasticSearch의 단점은 ?
1.완전 실시간은 아니다. 1초뒤쯤 검색이 가능한데 그 이유는 commit과 flush같은 복잡한 과정을 거치기 때문이다.
2.클러스터로 움직이는데 전체적인 클러스터의 성능향상을 위해 시스템적으로 비용 소모가 큰 롤백과 트랜잭션을 지원하지 않는다.
3.업데이트를 하려고하면 기존 문서를 삭제하고 새로운 문서를 생성한다.(업데이트를 제공하지 않음)
ElasticSearch의 주요 API
- 인덱스 관리 API (Indices API)
- 문서 관리 API (Document API)
- 검색 API (Search API)
- 집계 API (Aggregation API)
이외에도 최근본 상품들을 메인페이지에 띄우려고 시도해봤는데 잘 해결되지 않아서, 다시 한번 해봐야겠다.