목록ETC/Elasticsearch (4)
elevne's Study Note

Elasticsearch 와 함께 활용되는 Logstash 는 모든 크기, 형태, 소스의 데이터 수집을 진행할 수 있다고 한다. Logstash 에는 200 개 이상의 플러그인 프레임워크가 있어 다양한 입력, 필터, 출력을 자유롭게 조절할 수 있다. Logstash 를 다양하게 활용할 수 있지만, 그 기능 중에서 Elasticsearch 에 RDBMS 에 있는 데이터를 옮기는 데 사용하였다. 이전 글에서 한 테이블의 데이터를 Elasticsearch 에 Indexing 하는 법을 간단히 알아보았다. 그런데 실제로 프로젝트를 진행하다 보니, Elasticsearch 에서 여러 개의 Index 를 다뤄야 했고, 하나의 Logstash 프로그램으로 여러 개의 Index 에 Indexing 하는 법을 알아봐야 ..
이전 글에서 Index 생성 과정을 마쳤으니 이제 검색을 위한 코드를 작성해줄 차례이다. 다음과 같은 함수를 작성해주었다. public static SearchRequest listSearch(final String searchTerm){ try { final QueryBuilder query1 = QueryBuilders.matchQuery("field1", searchTerm).fuzziness(Fuzziness.AUTO); final QueryBuilder query2 = QueryBuilders.matchQuery("field2", searchTerm).fuzziness(Fuzziness.AUTO); BoolQueryBuilder boolQuery = QueryBuilders.boolQuery()..

Java Spring 프레임워크에서 Elasticsearch를 사용하여 검색 API를 구축하고자 하였다. 우선 Spring Initializr에서 다음 Dependencies를 추가해주고 Gradle Project를 생성해주었다. 프로젝트 폴더를 열고 필요한 파일들을 Gradle에서 자동으로 다운로드 되게끔 한다. application.properties 파일에 다음과 같이 작성해주었다. elasticsearch.url=localhost:9200 logging.level.org.springframework.data.elasticsearch.client.WIRE=TRACE Elasticsearch의 default 포트 값인 9200을 그대로 사용하였기에 위와 같이 적어주었고, 밑의 logging.level..

Elasticsearch는 검색엔진의 시초라고 불리는 루씬 기반의 오픈소스 검색엔진이다. 다양한 서치엔진이 있지만 Elasticsearch가 현재 각종 검색엔진 분야에서 지배적인 위치에 있다고 한다. NoSQL의 일종으로 분류할 수도 있고 MongoDB처럼 대용량 스토리지로 활용이 가능하긴 하지만 DB자체로 쓰기에는 안정성이 떨어진다고 한다. 많은 데이터를 다루는 어플리케이션을 구상 중이라면 Elastic Stack을 쓰는 것을 고려해볼 수 있다. Elastic Stack은 Beats, Logstash, Elasticsearch, Kibana로 이루어진 세트를 뜻한다. 위 도구들을 활용해서 어떠한 소스로부터도 어떠한 형식으로든 데이터를 불러오고 분석, 시각화 등을 준 실시간으로 진행할 수 있다. Elas..