Example usage for org.apache.solr.common SolrDocumentList SolrDocumentList

List of usage examples for org.apache.solr.common SolrDocumentList SolrDocumentList

Introduction

In this page you can find the example usage for org.apache.solr.common SolrDocumentList SolrDocumentList.

Prototype

SolrDocumentList

Source Link

Usage

From source file:com.sp.Parser.Utils.java

License:Open Source License

public static SolrDocumentList DedupByBookId(SolrDocumentList SolrDocList) {

    SolrDocumentList TempList = new SolrDocumentList();
    ArrayList<String> TempStringList = new ArrayList<>();

    String doc_book_id;/*from ww  w.ja v a  2  s .c  o m*/
    for (SolrDocument doc : SolrDocList) {
        doc_book_id = doc.getFieldValue("book_id").toString();
        if (!TempStringList.contains(doc_book_id)) {
            //System.out.println("doc_book_id " + doc_book_id);
            TempStringList.add(doc_book_id);
            TempList.add(doc);
        }
    }
    System.out.println("Templist size " + TempList.size());
    return TempList;
}

From source file:com.zb.app.external.lucene.solr.client.SolrClient.java

License:Open Source License

/**
 * solr//from w  w  w.j  ava2 s  .c  o  m
 * 
 * @param corename ?????
 * @param returnType Class
 * @param solrQuery {@link SolrQueryConvert}
 * @return
 */
@SuppressWarnings("unchecked")
public <T> List<T> querys(String corename, final Class<T> returnType, final SolrQuery solrQuery) {
    // 
    solrQuery.setParam("hl", "true"); // highlighting
    solrQuery.setParam("hl.fl", "lTile", "lMode", "lYesItem", "lNoItem", "lChildren", "lShop", "lExpenseItem",
            "lPreseItem", "rContent", "rCar");
    solrQuery.setHighlightSimplePre("<font color=\"red\">");
    solrQuery.setHighlightSimplePost("</font>");
    final SolrDocumentList list = new SolrDocumentList();
    final HttpSolrServer server = getOrCreateSolrServer(corename);
    exec(new Executor() {

        public Result exec() throws SolrServerException, IOException {
            QueryResponse query = null;
            if (solrQuery.toString().length() > MAX_URL_LENGTH) {
                query = server.query(solrQuery, SolrRequest.METHOD.POST);
            } else {
                query = server.query(solrQuery, SolrRequest.METHOD.GET);
            }
            SolrDocumentList documents = query.getResults();
            Map<String, Map<String, List<String>>> map = query.getHighlighting();
            for (SolrDocument document : documents) {
                document.setField("lTile", map.get(document.getFieldValue("id")).get("lTile"));
                list.add(document);
            }
            return Result.success();
        }
    });
    return (List<T>) toBeanList(list, returnType);
}

From source file:ddf.catalog.source.solr.SolrMetacardClientImplTest.java

License:Open Source License

private SolrDocumentList createSolrDocumentList(Map<String, String> attributes) {
    SolrDocumentList solrDocumentList = new SolrDocumentList();
    List<String> names = new ArrayList<>(attributes.keySet());
    for (String name : names) {
        solrDocumentList.add(createSolrDocument(name, attributes.get(name)));
    }//from  w w  w .  j a v a  2  s  .co  m
    return solrDocumentList;
}

From source file:de.hybris.platform.assistedservicefacades.solrfacetsearch.processors.AsmResultDataPostProcessor.java

License:Open Source License

@Override
public SearchResult process(final SearchResult solrSearchResult) {
    // do not filter out ASM category products if AS agent is logged in
    if (getAssistedServiceFacade().isAssistedServiceAgentLoggedIn()) {
        return solrSearchResult;
    }//from  ww  w .  j a  v a  2 s  . co m

    //make sure we have results to filter
    if (solrSearchResult != null && solrSearchResult.getTotalNumberOfResults() > 0) {
        try {
            final List<? extends ItemModel> results = solrSearchResult.getResults();

            final SolrDocumentList queryResponseResults = ((SolrSearchResult) solrSearchResult)
                    .getQueryResponse().getResults();

            CategoryModel asmCategory = null;

            final SolrDocumentList removedList = new SolrDocumentList();
            for (int i = 0; i < results.size(); i++) {
                final ItemModel item = results.get(i);
                if (item instanceof ProductModel) {

                    final ProductModel productModel = (ProductModel) item;

                    //here we are getting the ASM Category which has the Id of 1500
                    if (asmCategory == null) {
                        asmCategory = getCategoryService().getCategoryForCode(productModel.getCatalogVersion(),
                                "1500");
                    }

                    //get categories for the current product
                    final Collection<CategoryModel> categories = productModel.getSupercategories();

                    //check to see if the ASM Category is part of the associated categories or no
                    if (CollectionUtils.isNotEmpty(categories)) {
                        if (categories.contains(asmCategory)
                                && queryResponseResults.get(i).containsValue(productModel.getCode())) {
                            removedList.add(queryResponseResults.get(i)); //add the search item to be removed
                        }
                    }

                }
            }
            queryResponseResults.removeAll(removedList); //remove matching products that should only be displayed to ASM agent
        } catch (final FacetSearchException e) {
            LOG.error(e.getMessage(), e);
            return solrSearchResult;
        }
    }
    return solrSearchResult;
}

From source file:de.hybris.platform.commerceservices.search.solrfacetsearch.impl.DefaultSolrProductSearchServiceTest.java

License:Open Source License

@Test
public void testNull() throws FacetSearchException {
    final SearchResult searchResult = mock(SearchResult.class);
    final QueryResponse queryResponse = mock(QueryResponse.class);
    given(solrFacetSearchService.search(Matchers.<SearchQuery>any())).willReturn(searchResult);
    given(searchResult.getSolrObject()).willReturn(queryResponse);
    given(queryResponse.getResults()).willReturn(new SolrDocumentList());

    productSearchService.textSearch(null, null);
}

From source file:de.hybris.platform.commerceservices.search.solrfacetsearch.impl.DefaultSolrProductSearchServiceTest.java

License:Open Source License

@Test
public void testEmpty() throws FacetSearchException {
    final SearchResult searchResult = mock(SearchResult.class);
    final QueryResponse queryResponse = mock(QueryResponse.class);
    given(solrFacetSearchService.search(Matchers.<SearchQuery>any())).willReturn(searchResult);
    given(searchResult.getSolrObject()).willReturn(queryResponse);
    given(queryResponse.getResults()).willReturn(new SolrDocumentList());

    //      final SearchPageData<SearchResultValueData> searchResultValueData = new SearchPageData<SearchResultValueData>();
    //      searchResultValueData.setBreadcrumbs(Collections.EMPTY_LIST);
    //      searchResultValueData.setFacets(Collections.EMPTY_LIST);
    //      searchResultValueData.setResults(Collections.EMPTY_LIST);
    //      searchResultValueData.setSorts(Collections.EMPTY_LIST);
    //      final SearchQueryData currentQuery = new SearchQueryData();
    //      currentQuery.setFreeTextSearch("");
    //      currentQuery.setFilterTerms(Collections.EMPTY_LIST);
    //      searchResultValueData.setCurrentQuery(currentQuery);
    //      final PaginationData paginationData = new PaginationData();
    //      paginationData.setTotalNumberOfResults(0);
    //      paginationData.setNumberOfPages(0);
    //      paginationData.setPageSize(0);
    //      paginationData.setCurrentPage(0);
    //      searchResultValueData.setPagination(paginationData);
    //      given(commerceSearchService.search("")).willReturn(searchResultValueData);

    final FacetSearchPageData<SolrSearchQueryData, SearchResultValueData> searchPageData = productSearchService
            .textSearch("", null);
    Assert.assertEquals("", searchPageData.getCurrentQuery().getFreeTextSearch());
    Assert.assertNull(searchPageData.getCurrentQuery().getCategoryCode());
    Assert.assertTrue(searchPageData.getCurrentQuery().getFilterTerms().isEmpty());

    Assert.assertTrue(searchPageData.getBreadcrumbs().isEmpty());
    Assert.assertTrue(searchPageData.getFacets().isEmpty());
    Assert.assertTrue(searchPageData.getResults().isEmpty());
    Assert.assertTrue(searchPageData.getSorts().isEmpty());

    Assert.assertEquals(0, searchPageData.getPagination().getTotalNumberOfResults());
    Assert.assertEquals(0, searchPageData.getPagination().getNumberOfPages());
    Assert.assertEquals(0, searchPageData.getPagination().getPageSize());
    Assert.assertEquals(0, searchPageData.getPagination().getCurrentPage());
    Assert.assertNull(searchPageData.getPagination().getSort());
}

From source file:de.hybris.platform.commerceservices.search.solrfacetsearch.impl.DefaultSolrProductSearchServiceTest.java

License:Open Source License

@Test
public void testFreeTextQuery() throws FacetSearchException {
    final SearchResult searchResult = mock(SearchResult.class);
    final QueryResponse queryResponse = mock(QueryResponse.class);
    given(solrFacetSearchService.search(Matchers.<SearchQuery>any())).willReturn(searchResult);
    given(searchResult.getSolrObject()).willReturn(queryResponse);
    given(queryResponse.getResults()).willReturn(new SolrDocumentList());

    final FacetSearchPageData<SolrSearchQueryData, SearchResultValueData> searchPageData = productSearchService
            .textSearch("free text query", null);
    Assert.assertEquals("free text query", searchPageData.getCurrentQuery().getFreeTextSearch());
    Assert.assertNull(searchPageData.getCurrentQuery().getCategoryCode());
    Assert.assertTrue(searchPageData.getCurrentQuery().getFilterTerms().isEmpty());

    Assert.assertTrue(searchPageData.getBreadcrumbs().isEmpty());
    Assert.assertTrue(searchPageData.getFacets().isEmpty());
    Assert.assertTrue(searchPageData.getResults().isEmpty());
    Assert.assertTrue(searchPageData.getSorts().isEmpty());

    Assert.assertEquals(0, searchPageData.getPagination().getTotalNumberOfResults());
    Assert.assertEquals(0, searchPageData.getPagination().getNumberOfPages());
    Assert.assertEquals(0, searchPageData.getPagination().getPageSize());
    Assert.assertEquals(0, searchPageData.getPagination().getCurrentPage());
    Assert.assertNull(searchPageData.getPagination().getSort());
}

From source file:de.hybris.platform.commerceservices.search.solrfacetsearch.impl.DefaultSolrProductSearchServiceTest.java

License:Open Source License

@Test
public void testPageData() throws FacetSearchException {
    final SearchResult searchResult = mock(SearchResult.class);
    final QueryResponse queryResponse = mock(QueryResponse.class);
    given(solrFacetSearchService.search(Matchers.<SearchQuery>any())).willReturn(searchResult);
    given(searchResult.getSolrObject()).willReturn(queryResponse);
    given(queryResponse.getResults()).willReturn(new SolrDocumentList());

    given(Long.valueOf(searchResult.getTotalNumberOfResults())).willReturn(Long.valueOf(100));
    given(Integer.valueOf(searchResult.getPageSize())).willReturn(Integer.valueOf(20));
    given(Integer.valueOf(searchResult.getOffset())).willReturn(Integer.valueOf(0));
    given(Long.valueOf(searchResult.getNumberOfPages())).willReturn(Long.valueOf(5));

    final FacetSearchPageData<SolrSearchQueryData, SearchResultValueData> searchPageData = productSearchService
            .textSearch("", null);
    Assert.assertEquals("", searchPageData.getCurrentQuery().getFreeTextSearch());
    Assert.assertNull(searchPageData.getCurrentQuery().getCategoryCode());
    Assert.assertTrue(searchPageData.getCurrentQuery().getFilterTerms().isEmpty());

    Assert.assertTrue(searchPageData.getBreadcrumbs().isEmpty());
    Assert.assertTrue(searchPageData.getFacets().isEmpty());
    Assert.assertTrue(searchPageData.getResults().isEmpty());
    Assert.assertTrue(searchPageData.getSorts().isEmpty());

    Assert.assertEquals(100L, searchPageData.getPagination().getTotalNumberOfResults());
    Assert.assertEquals(5, searchPageData.getPagination().getNumberOfPages());
    Assert.assertEquals(20, searchPageData.getPagination().getPageSize());
    Assert.assertEquals(0, searchPageData.getPagination().getCurrentPage());
    Assert.assertNull(searchPageData.getPagination().getSort());
}

From source file:de.hybris.platform.commerceservices.search.solrfacetsearch.impl.DefaultSolrProductSearchServiceTest.java

License:Open Source License

@Test
public void testFacets() throws FacetSearchException {
    final SearchResult searchResult = mock(SearchResult.class);
    final QueryResponse queryResponse = mock(QueryResponse.class);
    given(solrFacetSearchService.search(Matchers.<SearchQuery>any())).willReturn(searchResult);
    given(searchResult.getSolrObject()).willReturn(queryResponse);
    given(queryResponse.getResults()).willReturn(new SolrDocumentList());

    given(Long.valueOf(searchResult.getTotalNumberOfResults())).willReturn(Long.valueOf(100));

    final FacetValue facetValue = new FacetValue("value", 7, false);
    final Facet facet = new Facet("facet", new ArrayList<FacetValue>(Collections.singleton(facetValue)));
    given(searchResult.getFacets()).willReturn(Collections.singletonList(facet));

    final IndexedProperty facetProperty = new IndexedProperty();
    facetProperty.setName("facet");
    facetProperty.setType("string");
    facetProperty.setFacet(true);/* w  w w  .  ja  v a  2  s. c  o m*/
    given(commerceIndexedType.getIndexedProperties())
            .willReturn(Collections.singletonMap("facet", facetProperty));
    facetProperty.setPriority(100);
    //facetProperty.setFacetSort(CommerceIndexedProperty.FacetSort.Alpha);

    final FacetSearchPageData<SolrSearchQueryData, SearchResultValueData> searchPageData = productSearchService
            .textSearch("", null);
    Assert.assertEquals("", searchPageData.getCurrentQuery().getFreeTextSearch());
    Assert.assertNull(searchPageData.getCurrentQuery().getCategoryCode());
    Assert.assertTrue(searchPageData.getCurrentQuery().getFilterTerms().isEmpty());

    Assert.assertEquals(1, searchPageData.getFacets().size());
    Assert.assertEquals("facet", searchPageData.getFacets().get(0).getCode());
    Assert.assertEquals("facet", searchPageData.getFacets().get(0).getName());
    Assert.assertEquals(1, searchPageData.getFacets().get(0).getValues().size());
    Assert.assertNotNull(searchPageData.getFacets().get(0).getValues().get(0).getQuery());
    Assert.assertEquals("value", searchPageData.getFacets().get(0).getValues().get(0).getName());
    Assert.assertEquals(7, searchPageData.getFacets().get(0).getValues().get(0).getCount());
}

From source file:de.hybris.platform.commerceservices.search.solrfacetsearch.impl.DefaultSolrProductSearchServiceTest.java

License:Open Source License

@Test
public void testReQuery() throws FacetSearchException {
    final SearchResult searchResult = mock(SearchResult.class);
    final QueryResponse queryResponse = mock(QueryResponse.class);
    given(solrFacetSearchService.search(Matchers.<SearchQuery>any())).willReturn(searchResult);
    given(searchResult.getSolrObject()).willReturn(queryResponse);
    given(queryResponse.getResults()).willReturn(new SolrDocumentList());

    given(Long.valueOf(searchResult.getTotalNumberOfResults())).willReturn(Long.valueOf(100));

    final FacetValue facetValue = new FacetValue("value", 7, false);
    final Facet facet = new Facet("facet", new ArrayList<FacetValue>(Collections.singleton(facetValue)));
    given(searchResult.getFacets()).willReturn(Collections.singletonList(facet));

    final IndexedProperty facetProperty = new IndexedProperty();
    facetProperty.setName("facet");
    facetProperty.setType("string");
    facetProperty.setFacet(true);/*from   w w  w. jav a2  s .c  om*/
    given(commerceIndexedType.getIndexedProperties())
            .willReturn(Collections.singletonMap("facet", facetProperty));
    facetProperty.setPriority(100);
    //facetProperty.setFacetSort(CommerceIndexedProperty.FacetSort.Alpha);

    final FacetSearchPageData<SolrSearchQueryData, SearchResultValueData> searchPageData = productSearchService
            .textSearch("", null);
    Assert.assertEquals("", searchPageData.getCurrentQuery().getFreeTextSearch());
    Assert.assertNull(searchPageData.getCurrentQuery().getCategoryCode());
    Assert.assertTrue(searchPageData.getCurrentQuery().getFilterTerms().isEmpty());

    Assert.assertEquals(1, searchPageData.getFacets().size());
    Assert.assertEquals("facet", searchPageData.getFacets().get(0).getCode());
    Assert.assertEquals("facet", searchPageData.getFacets().get(0).getName());
    Assert.assertEquals(1, searchPageData.getFacets().get(0).getValues().size());
    Assert.assertNotNull(searchPageData.getFacets().get(0).getValues().get(0).getQuery());
    Assert.assertEquals("value", searchPageData.getFacets().get(0).getValues().get(0).getName());
    Assert.assertEquals(7, searchPageData.getFacets().get(0).getValues().get(0).getCount());

    // Query Again, this time for the selected facet

    final SolrSearchQueryData facetQuery = searchPageData.getFacets().get(0).getValues().get(0).getQuery();
    final PageableData pageableData = new PageableData();
    pageableData.setCurrentPage(1);
    pageableData.setPageSize(2);
    pageableData.setSort("size");
    final FacetSearchPageData<SolrSearchQueryData, SearchResultValueData> secondSearchPageData = productSearchService
            .searchAgain(facetQuery, pageableData);

    Assert.assertEquals("", secondSearchPageData.getCurrentQuery().getFreeTextSearch());
    Assert.assertNull(secondSearchPageData.getCurrentQuery().getCategoryCode());
    Assert.assertEquals(1, secondSearchPageData.getBreadcrumbs().size());
    Assert.assertEquals("facet", secondSearchPageData.getBreadcrumbs().get(0).getFacetName());
    Assert.assertEquals("value", secondSearchPageData.getBreadcrumbs().get(0).getFacetValueName());
    Assert.assertNotNull(secondSearchPageData.getBreadcrumbs().get(0).getRemoveQuery());
    Assert.assertNull(secondSearchPageData.getBreadcrumbs().get(0).getTruncateQuery());
}