List of usage examples for org.springframework.data.domain Page getContent
List<T> getContent();
From source file:com.github.vanroy.springdata.jest.JestElasticsearchTemplateTests.java
@Test public void shouldReturnPageForGivenSearchQuery() { // given//from w ww. j a v a2s . c o m String documentId = randomNumeric(5); SampleEntity sampleEntity = SampleEntity.builder().id(documentId).message("some message") .version(System.currentTimeMillis()).build(); IndexQuery indexQuery = getIndexQuery(sampleEntity); elasticsearchTemplate.index(indexQuery); elasticsearchTemplate.refresh(SampleEntity.class); SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build(); // when Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class); // then assertThat(sampleEntities, is(notNullValue())); assertThat(sampleEntities.getTotalElements(), greaterThanOrEqualTo(1L)); assertThat(sampleEntities.getContent().get(0), is(sampleEntity)); }
From source file:uk.ac.ebi.ep.controller.BrowseTaxonomyController.java
@RequestMapping(value = FILTER_BY_FACETS, method = RequestMethod.GET) public String filterByFacets(@ModelAttribute("searchModel") SearchModel searchModel, @RequestParam(value = "taxId", required = true) Long taxId, @RequestParam(value = "organismName", required = false) String organismName, Model model, HttpServletRequest request, HttpSession session, RedirectAttributes attributes) { List<Species> species = enzymePortalService.findSpeciesByTaxId(taxId); List<Compound> compouds = enzymePortalService.findCompoundsByTaxId(taxId); List<Disease> diseases = enzymePortalService.findDiseasesByTaxId(taxId); List<EcNumber> enzymeFamilies = enzymePortalService.findEnzymeFamiliesByTaxId(taxId); SearchFilters filters = new SearchFilters(); filters.setSpecies(species);/*w ww . j a v a2s. c o m*/ filters.setCompounds(compouds); filters.setDiseases(diseases); filters.setEcNumbers(enzymeFamilies); SearchParams searchParams = searchModel.getSearchparams(); searchParams.setText(organismName); searchParams.setSize(SEARCH_PAGESIZE); searchModel.setSearchparams(searchParams); SearchResults searchResults = new SearchResults(); searchResults.setSearchfilters(filters); searchModel.setSearchresults(searchResults); SearchParams searchParameters = searchModel.getSearchparams(); String compound_autocompleteFilter = request.getParameter("searchparams.compounds"); String specie_autocompleteFilter = request.getParameter("_ctempList_selected"); String diseases_autocompleteFilter = request.getParameter("_DtempList_selected"); // Filter: List<String> specieFilter = searchParameters.getSpecies(); List<String> compoundFilter = searchParameters.getCompounds(); List<String> diseaseFilter = searchParameters.getDiseases(); List<Integer> ecFilter = searchParameters.getEcFamilies(); //remove empty string in the filter to avoid unsual behavior of the filter facets if (specieFilter.contains("")) { specieFilter.remove(""); } if (compoundFilter.contains("")) { compoundFilter.remove(""); } if (diseaseFilter.contains("")) { diseaseFilter.remove(""); } //to ensure that the seleted item is used in species filter, add the selected to the list. this is a workaround. different JS were used for auto complete and normal filter if ((specie_autocompleteFilter != null && StringUtils.hasLength(specie_autocompleteFilter) == true) && StringUtils.isEmpty(compound_autocompleteFilter) && StringUtils.isEmpty(diseases_autocompleteFilter)) { specieFilter.add(specie_autocompleteFilter); } if ((diseases_autocompleteFilter != null && StringUtils.hasLength(diseases_autocompleteFilter) == true) && StringUtils.isEmpty(compound_autocompleteFilter) && StringUtils.isEmpty(specie_autocompleteFilter)) { diseaseFilter.add(diseases_autocompleteFilter); } //both from auto complete and normal selection. selected items are displayed on top the list and returns back to the orignial list when not selected. //SearchResults searchResults = resultSet; List<Species> defaultSpeciesList = searchResults.getSearchfilters().getSpecies(); resetSelectedSpecies(defaultSpeciesList); searchParameters.getSpecies().stream().forEach((selectedItems) -> { defaultSpeciesList.stream() .filter((theSpecies) -> (selectedItems.equals(theSpecies.getScientificname()))) .forEach((theSpecies) -> { theSpecies.setSelected(true); }); }); List<Compound> defaultCompoundList = searchResults.getSearchfilters().getCompounds(); resetSelectedCompounds(defaultCompoundList); searchParameters.getCompounds().stream().forEach((SelectedCompounds) -> { defaultCompoundList.stream().filter((theCompound) -> (SelectedCompounds.equals(theCompound.getName()))) .forEach((theCompound) -> { theCompound.setSelected(true); }); }); List<Disease> defaultDiseaseList = searchResults.getSearchfilters().getDiseases(); resetSelectedDisease(defaultDiseaseList); searchParameters.getDiseases().stream().forEach((selectedDisease) -> { defaultDiseaseList.stream().filter((disease) -> (selectedDisease.equals(disease.getName()))) .forEach((disease) -> { disease.setSelected(true); }); }); List<EcNumber> defaultEcNumberList = searchResults.getSearchfilters().getEcNumbers(); resetSelectedEcNumber(defaultEcNumberList); searchParameters.getEcFamilies().stream().forEach((selectedEcFamily) -> { defaultEcNumberList.stream().filter((ec) -> (selectedEcFamily.equals(ec.getEc()))).forEach((ec) -> { ec.setSelected(true); }); }); Pageable pageable = new PageRequest(0, SEARCH_PAGESIZE, Sort.Direction.ASC, "function", "entryType"); Page<UniprotEntry> page = new PageImpl<>(new ArrayList<>(), pageable, 0); //specie only if (specieFilter.isEmpty() && compoundFilter.isEmpty() && diseaseFilter.isEmpty()) { page = enzymePortalService.filterBySpecie(taxId, pageable); } //specie only if (!specieFilter.isEmpty() && compoundFilter.isEmpty() && diseaseFilter.isEmpty()) { page = enzymePortalService.filterBySpecie(taxId, pageable); } // compounds only if (!compoundFilter.isEmpty() && diseaseFilter.isEmpty()) { page = enzymePortalService.filterBySpecieAndCompounds(taxId, compoundFilter, pageable); } // disease only if (compoundFilter.isEmpty() && !diseaseFilter.isEmpty()) { page = enzymePortalService.filterBySpecieAndDiseases(taxId, diseaseFilter, pageable); } //ec only if (compoundFilter.isEmpty() && diseaseFilter.isEmpty() && !ecFilter.isEmpty()) { page = enzymePortalService.filterBySpecieAndEc(taxId, ecFilter, pageable); } //compound and diseases if (!compoundFilter.isEmpty() && !diseaseFilter.isEmpty() && ecFilter.isEmpty()) { page = enzymePortalService.filterBySpecieAndCompoundsAndDiseases(taxId, compoundFilter, diseaseFilter, pageable); } //compound and ec if (!compoundFilter.isEmpty() && !ecFilter.isEmpty() && diseaseFilter.isEmpty()) { page = enzymePortalService.filterBySpecieAndCompoundsAndEc(taxId, compoundFilter, ecFilter, pageable); } //disease and ec if (!ecFilter.isEmpty() && !diseaseFilter.isEmpty() && compoundFilter.isEmpty()) { page = enzymePortalService.filterBySpecieAndDiseasesAndEc(taxId, diseaseFilter, ecFilter, pageable); } //disease and compounds and ec if (!ecFilter.isEmpty() && !diseaseFilter.isEmpty() && !compoundFilter.isEmpty()) { page = enzymePortalService.filterBySpecieAndCompoundsAndDiseasesAndEc(taxId, compoundFilter, diseaseFilter, ecFilter, pageable); } model.addAttribute("searchFilter", filters); List<UniprotEntry> result = page.getContent(); int current = page.getNumber() + 1; int begin = Math.max(1, current - 5); int end = Math.min(begin + 10, page.getTotalPages()); model.addAttribute("page", page); model.addAttribute("beginIndex", begin); model.addAttribute("endIndex", end); model.addAttribute("currentIndex", current); model.addAttribute("organismName", organismName); model.addAttribute("taxId", taxId); model.addAttribute("summaryEntries", result); searchResults.setTotalfound(page.getTotalElements()); searchResults.setSearchfilters(filters); searchResults.setSummaryentries(result); searchModel.setSearchresults(searchResults); model.addAttribute("searchModel", searchModel); model.addAttribute("searchConfig", searchConfig); String searchKey = getSearchKey(searchModel.getSearchparams()); cacheSearch(session.getServletContext(), searchKey, searchResults); setLastSummaries(session, searchResults.getSummaryentries()); clearHistory(session); addToHistory(session, searchModel.getSearchparams().getType(), searchKey); return RESULT; }
From source file:com.github.vanroy.springdata.jest.JestElasticsearchTemplateTests.java
@Test public void shouldReturnSpecifiedFields() { // given/*from ww w .ja v a 2s. c om*/ String documentId = randomNumeric(5); String message = "some test message"; SampleEntity sampleEntity = SampleEntity.builder().id(documentId).message(message) .version(System.currentTimeMillis()).build(); IndexQuery indexQuery = getIndexQuery(sampleEntity); elasticsearchTemplate.index(indexQuery); elasticsearchTemplate.refresh(SampleEntity.class); SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).withIndices(INDEX_NAME) .withTypes(TYPE_NAME).withFields("message").build(); // when Page<String> page = elasticsearchTemplate.queryForPage(searchQuery, String.class, new JestSearchResultMapper() { @Override public <T> Page<T> mapResults(SearchResult response, Class<T> clazz, Pageable pageable) { List<String> values = new ArrayList<String>(); for (JsonElement hit : response.getJsonObject().get("hits").getAsJsonObject().get("hits") .getAsJsonArray()) { values.add(hit.getAsJsonObject().get("fields").getAsJsonObject().get("message") .getAsString()); } return new PageImpl<T>((List<T>) values); } }); // then assertThat(page, is(notNullValue())); assertThat(page.getTotalElements(), is(equalTo(1L))); assertThat(page.getContent().get(0), is(message)); }
From source file:com.github.vanroy.springdata.jest.JestElasticsearchTemplateTests.java
@Test public void shouldIndexDocumentForSpecifiedSource() { // given//ww w . j a v a 2 s . c o m String documentSource = "{\"id\":\"2333343434\",\"type\":null,\"message\":\"some message\",\"rate\":0,\"available\":false,\"highlightedMessage\":null,\"version\":1385208779482}"; IndexQuery indexQuery = new IndexQuery(); indexQuery.setId("2333343434"); indexQuery.setSource(documentSource); indexQuery.setIndexName(INDEX_NAME); indexQuery.setType(TYPE_NAME); // when elasticsearchTemplate.index(indexQuery); elasticsearchTemplate.refresh(SampleEntity.class); SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(termQuery("id", indexQuery.getId())) .withIndices(INDEX_NAME).withTypes(TYPE_NAME).build(); // then Page<SampleEntity> page = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class, new JestSearchResultMapper() { @Override public <T> Page<T> mapResults(SearchResult response, Class<T> clazz, Pageable pageable) { List<SampleEntity> values = new ArrayList<SampleEntity>(); for (SearchResult.Hit<JsonObject, Void> searchHit : response.getHits(JsonObject.class)) { SampleEntity sampleEntity = new SampleEntity(); sampleEntity.setId(searchHit.source.get(JestResult.ES_METADATA_ID).getAsString()); sampleEntity.setMessage(searchHit.source.get("message").getAsString()); values.add(sampleEntity); } return new PageImpl<T>((List<T>) values); } }); assertThat(page, is(notNullValue())); assertThat(page.getContent().size(), is(1)); assertThat(page.getContent().get(0).getId(), is(indexQuery.getId())); }
From source file:com.github.vanroy.springdata.jest.JestElasticsearchTemplateTests.java
@Test public void shouldReturnResultsWithScanAndScrollForSpecifiedFieldsForSearchCriteria() { //given/*ww w . j a va 2 s.co m*/ List<IndexQuery> entities = createSampleEntitiesWithMessage("Test message", 30); // when elasticsearchTemplate.bulkIndex(entities); elasticsearchTemplate.refresh(SampleEntity.class); // then SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).withIndices(INDEX_NAME) .withTypes(TYPE_NAME).withFields("message").withQuery(matchAllQuery()) .withPageable(new PageRequest(0, 10)).build(); String scrollId = elasticsearchTemplate.scan(searchQuery, 10000, false); List<SampleEntity> sampleEntities = new ArrayList<SampleEntity>(); boolean hasRecords = true; while (hasRecords) { Page<SampleEntity> page = elasticsearchTemplate.scroll(scrollId, 10000L, new JestScrollResultMapper() { @Override public <T> Page<T> mapResults(SearchScrollResult response, Class<T> clazz) { List<SampleEntity> result = new ArrayList<SampleEntity>(); for (SearchScrollResult.Hit<JsonObject, Void> searchHit : response.getHits(JsonObject.class)) { String message = searchHit.fields.get("message").get(0); SampleEntity sampleEntity = new SampleEntity(); sampleEntity.setId(searchHit.source.get(JestResult.ES_METADATA_ID).getAsString()); sampleEntity.setMessage(message); result.add(sampleEntity); } if (result.size() > 0) { return new PageImpl<T>((List<T>) result); } return null; } }); if (page != null) { sampleEntities.addAll(page.getContent()); } else { hasRecords = false; } } elasticsearchTemplate.clearScroll(scrollId); assertThat(sampleEntities.size(), is(equalTo(30))); }
From source file:com.github.vanroy.springdata.jest.JestElasticsearchTemplateTests.java
@Test public void shouldReturnResultsWithScanAndScrollForSpecifiedFieldsForCriteriaCriteria() { //given//from w w w. j a va2 s . c om List<IndexQuery> entities = createSampleEntitiesWithMessage("Test message", 30); // when elasticsearchTemplate.bulkIndex(entities); elasticsearchTemplate.refresh(SampleEntity.class); // then CriteriaQuery criteriaQuery = new CriteriaQuery(new Criteria()); criteriaQuery.addIndices(INDEX_NAME); criteriaQuery.addTypes(TYPE_NAME); criteriaQuery.addFields("message"); criteriaQuery.setPageable(new PageRequest(0, 10)); String scrollId = elasticsearchTemplate.scan(criteriaQuery, 5000, false); List<SampleEntity> sampleEntities = new ArrayList<SampleEntity>(); boolean hasRecords = true; while (hasRecords) { Page<SampleEntity> page = elasticsearchTemplate.scroll(scrollId, 5000L, new JestScrollResultMapper() { @Override public <T> Page<T> mapResults(SearchScrollResult response, Class<T> clazz) { List<SampleEntity> result = new ArrayList<SampleEntity>(); for (SearchScrollResult.Hit<JsonObject, Void> searchHit : response.getHits(JsonObject.class)) { String message = searchHit.fields.get("message").get(0); SampleEntity sampleEntity = new SampleEntity(); sampleEntity.setId(searchHit.source.get(JestResult.ES_METADATA_ID).getAsString()); sampleEntity.setMessage(message); result.add(sampleEntity); } if (result.size() > 0) { return new PageImpl<T>((List<T>) result); } return null; } }); if (page != null) { sampleEntities.addAll(page.getContent()); } else { hasRecords = false; } } elasticsearchTemplate.clearScroll(scrollId); assertThat(sampleEntities.size(), is(equalTo(30))); }
From source file:com.github.vanroy.springdata.jest.JestElasticsearchTemplateTests.java
@Test public void shouldReturnResultsForScanAndScrollWithCustomResultMapperForGivenSearchQuery() { //given/*from w ww.j av a2 s .c o m*/ List<IndexQuery> entities = createSampleEntitiesWithMessage("Test message", 30); // when elasticsearchTemplate.bulkIndex(entities); elasticsearchTemplate.refresh(SampleEntity.class); // then SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).withIndices(INDEX_NAME) .withTypes(TYPE_NAME).withPageable(new PageRequest(0, 10)).build(); String scrollId = elasticsearchTemplate.scan(searchQuery, 1000, false); List<SampleEntity> sampleEntities = new ArrayList<SampleEntity>(); boolean hasRecords = true; while (hasRecords) { Page<SampleEntity> page = elasticsearchTemplate.scroll(scrollId, 5000L, new JestScrollResultMapper() { @Override public <T> Page<T> mapResults(SearchScrollResult response, Class<T> clazz) { List<SampleEntity> chunk = new ArrayList<SampleEntity>(); for (SearchScrollResult.Hit<JsonObject, Void> searchHit : response.getHits(JsonObject.class)) { if (response.getHits(JsonObject.class).size() <= 0) { return null; } SampleEntity user = new SampleEntity(); user.setId(searchHit.source.get(JestResult.ES_METADATA_ID).getAsString()); user.setMessage((String) searchHit.source.get("message").getAsString()); chunk.add(user); } if (chunk.size() > 0) { return new PageImpl<T>((List<T>) chunk); } return null; } }); if (page != null) { sampleEntities.addAll(page.getContent()); } else { hasRecords = false; } } elasticsearchTemplate.clearScroll(scrollId); assertThat(sampleEntities.size(), is(equalTo(30))); }
From source file:com.github.vanroy.springdata.jest.JestElasticsearchTemplateTests.java
@Test public void shouldReturnResultsForScanAndScrollWithCustomResultMapperForGivenCriteriaQuery() { //given/* www .j a va2 s . c o m*/ List<IndexQuery> entities = createSampleEntitiesWithMessage("Test message", 30); // when elasticsearchTemplate.bulkIndex(entities); elasticsearchTemplate.refresh(SampleEntity.class); // then CriteriaQuery criteriaQuery = new CriteriaQuery(new Criteria()); criteriaQuery.addIndices(INDEX_NAME); criteriaQuery.addTypes(TYPE_NAME); criteriaQuery.setPageable(new PageRequest(0, 10)); String scrollId = elasticsearchTemplate.scan(criteriaQuery, 5000, false); List<SampleEntity> sampleEntities = new ArrayList<SampleEntity>(); boolean hasRecords = true; while (hasRecords) { Page<SampleEntity> page = elasticsearchTemplate.scroll(scrollId, 5000L, new JestScrollResultMapper() { @Override public <T> Page<T> mapResults(SearchScrollResult response, Class<T> clazz) { List<SampleEntity> chunk = new ArrayList<SampleEntity>(); for (SearchScrollResult.Hit<JsonObject, Void> searchHit : response.getHits(JsonObject.class)) { if (response.getHits(JsonObject.class).size() <= 0) { return null; } SampleEntity user = new SampleEntity(); user.setId(searchHit.source.get(JestResult.ES_METADATA_ID).getAsString()); user.setMessage((String) searchHit.source.get("message").getAsString()); chunk.add(user); } if (chunk.size() > 0) { return new PageImpl<T>((List<T>) chunk); } return null; } }); if (page != null) { sampleEntities.addAll(page.getContent()); } else { hasRecords = false; } } elasticsearchTemplate.clearScroll(scrollId); assertThat(sampleEntities.size(), is(equalTo(30))); }
From source file:com.github.vanroy.springdata.jest.JestElasticsearchTemplateTests.java
@Test public void shouldReturnHighlightedFieldsForGivenQueryAndFields() { //given/*from ww w.ja v a 2 s. com*/ String documentId = randomNumeric(5); String actualMessage = "some test message"; String highlightedMessage = "some <em>test</em> message"; SampleEntity sampleEntity = SampleEntity.builder().id(documentId).message(actualMessage) .version(System.currentTimeMillis()).build(); IndexQuery indexQuery = getIndexQuery(sampleEntity); elasticsearchTemplate.index(indexQuery); elasticsearchTemplate.refresh(SampleEntity.class); SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(termQuery("message", "test")) .withHighlightFields(new HighlightBuilder.Field("message")).build(); Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class, new JestSearchResultMapper() { @Override public <T> Page<T> mapResults(SearchResult response, Class<T> clazz, Pageable pageable) { List<SampleEntity> chunk = new ArrayList<SampleEntity>(); for (SearchResult.Hit<JsonObject, Void> searchHit : response.getHits(JsonObject.class)) { if (response.getHits(JsonObject.class).size() <= 0) { return null; } SampleEntity user = new SampleEntity(); user.setId(searchHit.source.get(JestResult.ES_METADATA_ID).getAsString()); user.setMessage(searchHit.source.get("message").getAsString()); user.setHighlightedMessage(searchHit.highlight.get("message").get(0)); chunk.add(user); } if (chunk.size() > 0) { return new PageImpl<T>((List<T>) chunk); } return null; } }); assertThat(sampleEntities.getContent().get(0).getHighlightedMessage(), is(highlightedMessage)); }