[Elasticsearch] SearchType.SCAN 기능 테스트

Elastic/Elasticsearch 2014. 12. 9. 18:58

일단 가볍게 코드 부터 keeping 합니다.


     SearchResponse searchResponse = client.prepareSearch(INDICE_NAME)

                .setSearchType(SearchType.SCAN)

                .setQuery(new MatchAllQueryBuilder())

                .setSize(FETCH_SIZE)

                .setScroll(TimeValue.timeValueMinutes(10))

                .execute().actionGet(TimeValue.timeValueMinutes(10));


        while (true) {

            searchResponse = client.prepareSearchScroll(searchResponse.getScrollId()).setScroll(TimeValue.timeValueMinutes(10)).execute().actionGet(TimeValue.timeValueMinutes(10));

                    

            if (searchResponse.getHits().hits().length == 0) {

                break;

            }

        }


뭐 간단 합니다.

shard 별로 FETCH_SIZE 만큼씩 요청시 데이터를 가져 오는 로직 입니다.

기타 응용이나 자세한 설명은 다음에.. ^^


로직만 확인하세요.

: