Example usage for org.springframework.data.solr.core.query.result FacetPage getContent

List of usage examples for org.springframework.data.solr.core.query.result FacetPage getContent

Introduction

In this page you can find the example usage for org.springframework.data.solr.core.query.result FacetPage getContent.

Prototype

List<T> getContent();

Source Link

Document

Returns the page content as List .

Usage

From source file:com.lijojacob.mls.productcatalog.index.ProductDocumentServiceImpl.java

private SearchResultDTO processSearchResults(FacetPage<ProductDocument> productDocumentsFacetPage) {
    SearchResultDTO result = new SearchResultDTO();
    DocumentResults documentResults = new DocumentResults();
    documentResults.setResults(productDocumentsFacetPage.getContent());
    documentResults.setTotalPages(productDocumentsFacetPage.getTotalPages());
    result.setDocuments(documentResults);
    if (CollectionUtils.isNotEmpty(productDocumentsFacetPage.getFacetFields())) {
        Map<String, List<Facet>> facetMap = new HashMap<String, List<Facet>>();
        FacetResults facetResults = new FacetResults();
        for (Field facetField : productDocumentsFacetPage.getFacetFields()) {
            if (null != productDocumentsFacetPage.getFacetResultPage(facetField)) {
                List<FacetFieldEntry> facetFieldEntryList = productDocumentsFacetPage
                        .getFacetResultPage(facetField).getContent();
                List<Facet> facets = new ArrayList<Facet>();
                for (FacetFieldEntry facetFieldEntry : facetFieldEntryList) {
                    Facet facet = new Facet();
                    facet.setValue(facetFieldEntry.getValue());
                    facet.setCount(facetFieldEntry.getValueCount());
                    facets.add(facet);/*from   www  .jav a  2 s  .co m*/
                }
                facetMap.put(facetField.getName(), facets);
            }
        }
        facetResults.setResults(facetMap);
        result.setFacets(facetResults);
    }
    return result;
}

From source file:com.dm.estore.search.services.impl.CatalogSearchServiceImpl.java

@Override
public ProductSearchResultDto findProducts(ProductSearchDto searchRequest) {

    Sort sort = new Sort(Sort.Direction.fromString(searchRequest.getSortOrder()),
            searchRequest.getSortColumn());
    PageRequest pageRequest = new PageRequest(searchRequest.getPage(), searchRequest.getPageSize(), sort);
    FacetPage<CatalogItemDto> catalogItems = catalogSearchRepository.searchProducts(
            searchRequest.getSearchTerms(), searchRequest.getCategory(), searchRequest.getMaterials(),
            searchRequest.getColors(), pageRequest);

    ProductSearchResultDto result = new ProductSearchResultDto();
    result.setTotalCount(catalogItems.getTotalElements());

    for (Page<? extends FacetEntry> page : catalogItems.getAllFacets()) {
        for (FacetEntry facetEntry : page.getContent()) {
            String key = String.valueOf(facetEntry.getKey());
            String facetCode = facetEntry.getValue(); // name of the category
            long count = facetEntry.getValueCount(); // number of books in this category

            if (StringUtils.isEmpty(facetCode))
                continue;

            if (CatalogItemDto.FIELD_CATEGORY.equalsIgnoreCase(key)) {
                result.getCategoriesFacet().put(facetCode, count);
            } else if (CatalogItemDto.FIELD_VARIANT_GROUP.equalsIgnoreCase(key)) {
                result.getGroupFacet().put(facetCode, count);
            } else if (CatalogItemDto.FIELD_CATEGORY.equalsIgnoreCase(key)) {
                result.getSubGroupFacet().put(facetCode, count);
            }//from  www.jav a  2  s .  c  o m
        }
    }

    result.setProducts(productConverter.convert(catalogItems.getContent()));
    result.setTotalCount((int) (catalogItems.getTotalElements()));
    return result;
}