@Override public int hashCode() { int result = 31 * (int) getTotal() + (getResults() != null ? getResults().hashCode() : 0); result = 31 * result + (getFacetCounts() != null ? getFacetCounts().hashCode() : 0); return result; }
protected SearchResponse buildSearchResponse( SearchRequest searchRequest, QueryResponse solrResponse) { SearchResponse searchResponse = new SearchResponse(); SolrDocumentList solrDocumentList = solrResponse.getResults(); searchResponse.setTotal(solrDocumentList.getNumFound()); // search hits --> search results List<SearchResult> results = solrDocumentList.stream() .map(solrDocument -> SolrUtilities.getSearchResult(solrDocument, searchRequest.getFields(), accessConfig.getIndexSupplier())) .collect(Collectors.toList()); searchResponse.setResults(results); // handle facet fields List<String> facetFields = searchRequest.getFacetFields(); if (facetFields != null) { searchResponse.setFacetCounts(getFacetCounts(facetFields, solrResponse)); } if (LOG.isDebugEnabled()) { String response; try { response = JSONUtils.INSTANCE.toJSON(searchResponse, false); } catch (JsonProcessingException e) { response = e.getMessage(); } LOG.debug("Built search response; response={}", response); } return searchResponse; }
@Test public void different_type_filter_query() throws Exception { SearchRequest request = JSONUtils.INSTANCE.load(differentTypeFilterQuery, SearchRequest.class); SearchResponse response = dao.search(request); Assert.assertEquals(1, response.getTotal()); List<SearchResult> results = response.getResults(); Assert.assertEquals("bro", results.get(0).getSource().get("source:type")); Assert.assertEquals("data 1", results.get(0).getSource().get("ttl")); }
SearchResponse searchResponse = new SearchResponse(); searchResponse.setResults(allResults); searchResponse.setTotal(allResults.size()); return searchResponse;
.getResults() .stream() .map(result -> toDocument(result, update.getTimestamp()))
@Test public void missing_type_facet_query() throws Exception { SearchRequest request = JSONUtils.INSTANCE.load(missingTypeFacetQuery, SearchRequest.class); SearchResponse response = getIndexDao().search(request); Assert.assertEquals(10, response.getTotal()); Map<String, Map<String, Long>> facetCounts = response.getFacetCounts(); Assert.assertEquals(1, facetCounts.size()); Map<String, Long> snortFieldCounts = facetCounts.get("sig_generator"); Assert.assertEquals(5, snortFieldCounts.size()); Assert.assertEquals(1L, snortFieldCounts.get("sig_generator 5").longValue()); Assert.assertEquals(1L, snortFieldCounts.get("sig_generator 4").longValue()); Assert.assertEquals(1L, snortFieldCounts.get("sig_generator 3").longValue()); Assert.assertEquals(1L, snortFieldCounts.get("sig_generator 2").longValue()); Assert.assertEquals(1L, snortFieldCounts.get("sig_generator 1").longValue()); response.getFacetCounts(); }
@Test public void no_results_returned_when_query_does_not_match() throws Exception { SearchRequest request = JSONUtils.INSTANCE.load(noResultsFieldsQuery, SearchRequest.class); SearchResponse response = getIndexDao().search(request); Assert.assertEquals(0, response.getTotal()); }
@Test public void disabled_facet_query_returns_null_count() throws Exception { SearchRequest request = JSONUtils.INSTANCE.load(disabledFacetQuery, SearchRequest.class); SearchResponse response = getIndexDao().search(request); Assert.assertNull(response.getFacetCounts()); }
@Test public void sort_by_guid() throws Exception { SearchRequest request = JSONUtils.INSTANCE.load(sortByGuidQuery, SearchRequest.class); SearchResponse response = getIndexDao().search(request); Assert.assertEquals(5, response.getTotal()); List<SearchResult> results = response.getResults(); for (int i = 0; i < 5; ++i) { Map<String, Object> source = results.get(i).getSource(); Assert.assertEquals(1, source.size()); Assert.assertEquals(source.get("guid"), "bro_" + (i + 1)); } }
SearchResponse searchResponse = new SearchResponse(); searchResponse.setTotal(total); searchResponse.setResults(allResults); return searchResponse;
for (SearchResult searchResult : searchResponse.getResults()) { Document doc = new Document(searchResult.getSource(), searchResult.getId(), MetaAlertConstants.METAALERT_TYPE, 0L);
SearchRequest request = JSONUtils.INSTANCE.load(facetQuery, SearchRequest.class); SearchResponse response = getIndexDao().search(request); Assert.assertEquals(10, response.getTotal()); Map<String, Map<String, Long>> facetCounts = response.getFacetCounts(); Assert.assertEquals(8, facetCounts.size()); Map<String, Long> sourceTypeCounts = facetCounts.get(getSourceTypeField());
@Test public void shouldSortMetaAlertsByAlertStatus() throws Exception { final String guid = "meta_alert"; setupTypings(); // should be able to sort meta-alert search results by 'alert_status' SortField sortField = new SortField(); sortField.setField("alert_status"); sortField.setSortOrder("asc"); // when no meta-alerts exist, it should work Assert.assertEquals(0, searchForSortedMetaAlerts(sortField).getTotal()); // when meta-alert just created, it should work createMetaAlert(guid); Assert.assertEquals(1, searchForSortedMetaAlerts(sortField).getTotal()); // when meta-alert 'esclated', it should work escalateMetaAlert(guid); Assert.assertEquals(1, searchForSortedMetaAlerts(sortField).getTotal()); }
@Test public void sort_query_sorts_results_ascending() throws Exception { SearchRequest request = JSONUtils.INSTANCE.load(sortQuery, SearchRequest.class); SearchResponse response = getIndexDao().search(request); Assert.assertEquals(10, response.getTotal()); List<SearchResult> results = response.getResults(); for (int i = 8001; i < 8011; ++i) { Assert.assertEquals(i, results.get(i - 8001).getSource().get("ip_src_port")); } }
org.elasticsearch.action.search.SearchResponse esResponse) throws InvalidSearchException { SearchResponse searchResponse = new SearchResponse(); searchResponse.setTotal(esResponse.getHits().getTotalHits()); results.add(getSearchResult(hit, searchRequest.getFields())); searchResponse.setResults(results); Arrays.toString(searchRequest.getIndices().toArray()))); searchResponse.setFacetCounts(getFacetCounts(facetFields, esResponse.getAggregations(), commonColumnMetadata ));
@Override public boolean equals(Object o) { if (this == o) { return true; } if (o == null || getClass() != o.getClass()) { return false; } SearchResponse that = (SearchResponse) o; return getTotal() == that.getTotal() && (getResults() != null ? getResults().equals(that.getResults()) : that.getResults() != null) && (getFacetCounts() != null ? getFacetCounts().equals(that.getFacetCounts()) : that.getFacetCounts() != null); }
LOG.debug("MetaAlert Search Number of results {}", results.getResults().size()); for (SearchResult result : results.getResults()) { if (result.getSource().get(config.getSourceTypeField()) .equals(MetaAlertConstants.METAALERT_TYPE)) { for (SearchResult result : results.getResults()) { Document fullDoc = guidToDocuments.get(result.getId()); if (fullDoc != null) {
@Test public void different_type_facet_query() throws Exception { thrown.expect(Exception.class); SearchRequest request = JSONUtils.INSTANCE.load(differentTypeFacetQuery, SearchRequest.class); SearchResponse response = getIndexDao().search(request); Assert.assertEquals(3, response.getTotal()); }
@Test public void returns_results_only_for_specified_indices() throws Exception { SearchRequest request = JSONUtils.INSTANCE.load(indexQuery, SearchRequest.class); SearchResponse response = getIndexDao().search(request); Assert.assertEquals(5, response.getTotal()); List<SearchResult> results = response.getResults(); for (int i = 5, j = 0; i > 0; i--, j++) { Assert.assertEquals("bro", results.get(j).getSource().get(getSourceTypeField())); Assert.assertEquals(i + "", results.get(j).getSource().get("timestamp").toString()); } }
Collections.sort(response, sorted(searchRequest.getSort())); SearchResponse ret = new SearchResponse(); List<SearchResult> finalResp = new ArrayList<>(); int maxSize = config.getMaxSearchResults() == null?searchRequest.getSize():config.getMaxSearchResults(); finalResp.add(response.get(i)); ret.setTotal(response.size()); ret.setResults(finalResp); Map<String, Map<String, Long>> facetCounts = new HashMap<>(); List<String> facetFields = searchRequest.getFacetFields(); facetCounts.put(facet, FACET_COUNTS.get(facet)); ret.setFacetCounts(facetCounts);