복붙노트

[HADOOP] SQL로 감소 ES 쿼리 결과를 전달

HADOOP

SQL로 감소 ES 쿼리 결과를 전달

이것은 하둡 ElasticSearch 쿼리를 전달하는 방법에 대한 후속 질문입니다.

기본적으로, 집계 쿼리를 실행하는 SQL로 설정 결과를 ElasticSearch에서 전체 텍스트 검색을 수행하고 전달하려는. 다음은 그 예이다 :

이제 우리는 (10B) 기록을 가지고있는 재무 데이터베이스에서 "종료"를 검색한다고 가정 해 봅시다. 그것은 다음과 일치를 가지고 :

대신 10 개 + M ID를 다시 전달하는, 우리는 다음과 같은 '감소 쿼리를'다시 전달거야 -

...WHERE name in ('Terminator', 'Terminator 2', 'XJ4-227')

우리는 어떻게 ES 우리가 SQL로 다시 보낼 수있는 가장 작은 필터 쿼리 결과 집합 줄이기 위해 이러한 알고리즘을 쓸 수 있을까? ES 께서 우리에게 도움이 될 일치 메타 데이터의 어떤 종류가 있습니까?

해결법

  1. ==============================

    1.당신은 "분석되지"하는 것을 알고있는 경우 (키워드 5.x의에서) 필드는 용어를 집계하여 고유 값과 일치의 수를 얻을 수 사용 사례에 적합 한 것이다. 검색 너무 많은 고유 값의 결과 경우에만 상위 N이 반환 될 때 sum_other_doc_count 심지어 당신을 알려줍니다.

    당신은 "분석되지"하는 것을 알고있는 경우 (키워드 5.x의에서) 필드는 용어를 집계하여 고유 값과 일치의 수를 얻을 수 사용 사례에 적합 한 것이다. 검색 너무 많은 고유 값의 결과 경우에만 상위 N이 반환 될 때 sum_other_doc_count 심지어 당신을 알려줍니다.

    당연히 여러 분야에서 용어 집합을 실행하고 최소한의 고유 한 값을 가지고 SQL에서 하나를 사용할 수 있습니다. 그리고 실제로 당신이 용어 집합을 실행해야 할 필드 알고 처음 실행 카디널리티 집계에 더 효율적이 될 수 있습니다.

    검색 한 다음 그 결과를 캐시한다 순수한 필터가하지만 경우하시기 바랍니다 벤치마킹 ES 클러스터와 두 솔루션은 데이터의 꽤 많이 있습니다.

  2. from https://stackoverflow.com/questions/42125754/passing-reduced-es-query-results-to-sql by cc-by-sa and MIT license