2012-05-16 4 views
3

elasticsearch를 사용하여 모델의 가격 필드에 대한 히스토그램 패싯을 얻고 싶습니다. 사전에 최소 및 최대 가격을 모른 채, 내가 원하는 것은 히스토그램이 간격의 세트 번호, 가격의 전체 범위를 커버하는 것입니다, 10. 내가elasticsearch 히스토그램의 간격 수를 설정하는 방법

http://www.elasticsearch.org/guide/reference/api/search/facets/histogram-facet.html

의 문서에서 볼 수 있다고

각 구간의 가격대를 지정할 수는 있지만, 이는 몇 가지 불특정 다수 구간을 제공합니다. 가격 필드의 전체 값 범위를 고르게 포함하는 특정 간격의 간격을 갖고 싶습니다. 이 일을 할 수있는 방법이 있습니까?

나는 하나의 솔루션이 내 데이터베이스에 최소값과 최대 값을 쿼리 한 다음 적절한 간격 크기를 계산할 수 있다는 것을 알고 있지만 elasticsearch를 사용하는 주요 요점 중 하나에 반대한다. 검색 관련 쿼리를 위해 db를 누르십시오. 당신이 ES에 대해 두 개의 질의를 할 말을하는지 그래서

답변

0

당신은 Statistical Facet

+0

아를 사용하여 최소 및 최대 값 elasticsearch를 조회 할 수 있습니다? 하나의 쿼리에서이를 수행 할 수있는 방법이 있습니까? – operand

+0

네, 단일 쿼리를 사용하는 것이 불가능하다고 생각합니다. elasticsearch가 다른 조각에있는 패싯을 처리 할 때 각 조각이 속한 양동이와 모든 조각에서 양동이가 동일해야한다는 것을 알아야합니다. 따라서이 쿼리가 elasticsearch에 구현되었다고해도 elasticsearch는 내부적으로 두 개의 쿼리를 수행해야합니다. 먼저 모든 샤드에서 최소 및 최대 값을 계산하고 각 버킷에서 패싯의 수를 계산해야합니다. – imotov

+0

설명 주셔서 대단히 감사드립니다. 그건 의미가 있습니다. – operand