/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package com.enonic.cms.core.search;
import org.elasticsearch.action.search.SearchResponse;
import org.elasticsearch.search.facet.Facet;
import org.elasticsearch.search.facet.Facets;
import org.elasticsearch.search.facet.statistical.StatisticalFacet;
public class FacetExtractor
{
public static StatisticalFacet getStatisticalFacet( SearchResponse response, String facetName )
{
Facet facet = getFacet( response, facetName );
if ( facet == null )
{
return null;
}
if ( facet instanceof StatisticalFacet )
{
return (StatisticalFacet) facet;
}
throw new IndexException( "Facet '" + facetName + "' not of expected type Statistical" );
}
private static Facet getFacet( SearchResponse response, String facetName )
{
if ( response == null )
{
return null;
}
Facets facets = response.getFacets();
if ( facets == null )
{
return null;
}
for ( Facet facet : facets.facets() )
{
if ( facetName.equalsIgnoreCase( facet.getName() ) )
{
return facet;
}
}
return null;
}
}