Study: DeveloperTools(DevTool)/DevTool: NoSQL(Elastic, Mongo)

    [Elastic] Elasticsearch 구문 검색(_search API): 대용량 데이터를 검색하자 (feat. scroll)

    본 문서는 elasticsearch의 데이터를 검색하는 _search API의 응용에 해당하는 'scroll 파라미터'에 대해 다루고 있습니다. 이를 위해서 [DB] Elasticsearch 구문 검색(_search API): 원하는 내용을 검색하자 를 읽고 오면 더욱 쉽게 이해할 수 있습니다. Elasticsearch 구문 검색(_search API): scroll _search API를 사용하면 인덱스 내의 모든 값을 읽어오는 것이 아닌 하나의 페이지를 결과로 리턴합니다. 따라서 대용량 데이터를 리턴하기 위해서는 _search API를 사용할 때 scroll 매개변수를 활용해야합니다. scroll 매개변수를 활용하면 페이지 단위(pagination)로 계속해서 읽을 수 있습니다. 따라서 이를 활용하면..

    [Elastic] Elasticsearch 구문 검색(_search API): 원하는 내용을 검색하자 (feat. dev tool(Kivana))

    Elasticsearch 구문 검색(_search API) _search API 란? 지금까지는 도큐먼트 단위의 입력, 수정, 삭제, 조회 하는 방법을 알아보았습니다. 하지만 Elasticsearch의 진가는 쿼리를 통한 검색 기능에 있습니다. 검색은 인덱스 단위로 이루어집니다. GET /_search 형식으로 사용하며 쿼리를 입력하지 않으면 전체 도큐먼트를 찾는 match_all 검색을 합니다. GET /_search # 위와 같이 입력할시 자동으로 아래와 같이 퀴리합니다. # GET /_search # { # "query": { # "match_all": {} # } # } URI 검색 _search 뒤에 q 파라메터를 사용해서 검색어를 입력할 수 있습니다. 이렇게 요청 주소에 검색어를 넣어 검색하는..

    [Elastic] Elasticsearch 구문 검색: 'SQL Query' to 'Query DSL'

    💡 본 문서는 'RDB에서 사용하는 Query 문을 Elasticsearch Query DSL로 변환하는 방법'에 대해 정리해놓은 글입니다. Elasticsearch를 사용함에 있어 Kibana와 연계하여 사용하는 경우가 허다한데, 이 경우 Elasticsearch의 데이터를 검색하기 위해 사이드 바의 'Dev Tool'를 사용하곤 합니다. 이때 Elasticsearch용 Query DSL을 이용한다면 특정 데이터를 쉽게 찾을 수 있습니다. DSL(Domain Specific Language) 특정 영역을 타겟하고 있는 언어입니다. 이는 어느 도메인에서나 적용 가능한 범용 언어(General-purpose language)와는 반대되는 개념입니다. 예제 SQL: DB의 데이터를 참조하기 위해 사용. Do..

    [Elastic] Elasticsearch 구문 검색(_bulk API): 여러 명령을 배치로 수행하자

    Elasticsearch _bulk API _bulk API 란? 여러 명령을 배치로 수행하기 위해서 _bulk API의 사용이 가능합니다. _bulk API로 index, create, update, delete의 동작이 가능하며 delete를 제외하고는 명령문(메타정보)과 데이터문(요청데이터)을 한 줄씩 순서대로 입해야 합니다. delete는 내용 입력이 필요 없기 때문에 명령문만 있습니다. _bulk 의 명령문과 데이터문은 반드시 한 줄 안에 입력이 되어야 하며 줄바꿈을 허용하지 않습니다. _bulk API를 사용해야하는 이유 벌크 동작은 따로따로 수행하는 것 보다 속도가 훨씬 빠릅니다. 특히 대량의 데이터를 입력 할 때는 반드시 _bulk API를 사용해야 불필요한 오버헤드가 없습니다. Logst..

    [Elastic] Elasticsearch CRUD 정리: 데이터 다루기

    1. 데이터 제어하기 1.1 Elasticsearch 저장 구조 (RDB VS Elasticsearch) 엘라스틱서치에 데이터를 넣고 조회해보기 전에 기존의 RDB와는 다른 저장 구조를 먼저 파악해야합니다. database column data schema RDB table column row schema Elasticsearch index field Json mapping Elasticsearch는 http프로토콜을 통해 데이터를 삽입하거나 조회, 수정, 삭제 CRUD 작업을 할 수 있습니다. 사이트중에 http통신을 지원하는 사이트를 통해 진행하거나 크롬 확장앱인 Postman등을 사용하시면 됩니다. 요청하는 포멧은 아래처럼 맞춰줘야 합니다. http:// :/// 2. HTTP Method 2.1 ..