List of usage examples for org.springframework.data.elasticsearch.core FacetedPageImpl FacetedPageImpl
public FacetedPageImpl(List<T> content)
From source file:org.bisen.chatamari.service.BlogService.java
@Transactional(readOnly = true) public Page<ElasticBlog> search(String query, Pageable pageable) throws DataAccessException { SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(QueryBuilders.queryString(query)) .withPageable(pageable).withHighlightFields(new HighlightBuilder.Field("strippedContent"), new HighlightBuilder.Field("title")) .build();//from ww w.java 2 s. c o m Page<ElasticBlog> pageResult = elasticsearchTemplate.queryForPage(searchQuery, ElasticBlog.class, new SearchResultMapper() { @Override public <T> FacetedPage<T> mapResults(SearchResponse response, Class<T> clazz, Pageable pageable) { List<ElasticBlog> blogs = new ArrayList<>(); for (SearchHit hit : response.getHits()) { if (response.getHits().getHits().length <= 0) { return null; } ElasticBlog blog = new ElasticBlog(); blog.setId(Integer.parseInt(hit.getId())); blog.setContent((String) hit.getSource().get("content")); blog.setCreatedByEmail((String) hit.getSource().get("createdByEmail")); blog.setCreatedDate(hit.getSource().get("createdDate") != null ? new Date((long) hit.getSource().get("createdDate")) : null); blog.setLastModifiedByEmail((String) hit.getSource().get("createdModifiedEmail")); blog.setLastModifiedDate(hit.getSource().get("lastModifiedDate") != null ? new Date((long) hit.getSource().get("lastModifiedDate")) : null); blog.setTags((ArrayList<String>) hit.getSource().get("tags")); blog.setTitle((String) hit.getSource().get("title")); if (hit.getHighlightFields() != null) { if (hit.getHighlightFields().get("strippedContent") != null) { blog.setHighlightedString( hit.getHighlightFields().get("strippedContent").fragments()[0] .toString()); } else { blog.setHighlightedString( hit.getHighlightFields().get("title").fragments()[0].toString()); } } blogs.add(blog); } if (blogs.size() > 0) { FacetedPage<T> page = new FacetedPageImpl<>((List<T>) blogs); return page; } return null; } }); return pageResult; }
From source file:org.springframework.data.elasticsearch.core.ElasticsearchTemplateTests.java
@Test public void shouldReturnSpecifiedFields() { // given/* w w w. jav a2 s. c om*/ String documentId = randomNumeric(5); String message = "some test message"; SampleEntity sampleEntity = new SampleEntity(); sampleEntity.setId(documentId); sampleEntity.setMessage(message); sampleEntity.setVersion(System.currentTimeMillis()); IndexQuery indexQuery = new IndexQuery(); indexQuery.setId(documentId); indexQuery.setObject(sampleEntity); elasticsearchTemplate.index(indexQuery); elasticsearchTemplate.refresh(SampleEntity.class, true); SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()) .withIndices("test-index").withTypes("test-type").withFields("message").build(); // when Page<String> page = elasticsearchTemplate.queryForPage(searchQuery, new ResultsMapper<String>() { @Override public FacetedPage<String> mapResults(SearchResponse response) { List<String> values = new ArrayList<String>(); for (SearchHit searchHit : response.getHits()) { values.add((String) searchHit.field("message").value()); } return new FacetedPageImpl<String>(values); } }); // then assertThat(page, is(notNullValue())); assertThat(page.getTotalElements(), is(equalTo(1L))); assertThat(page.getContent().get(0), is(message)); }
From source file:org.springframework.data.elasticsearch.core.ElasticsearchTemplateTests.java
@Test public void shouldReturnResultsWithScanAndScroll() { //given//from w w w. j av a2 s . c o m List<IndexQuery> entities = createSampleEntitiesWithMessage("Test message", 30); // when elasticsearchTemplate.bulkIndex(entities); elasticsearchTemplate.refresh(SampleEntity.class, true); // then SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()) .withIndices("test-index").withTypes("test-type").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 ResultsMapper<SampleEntity>() { @Override public FacetedPage<SampleEntity> mapResults(SearchResponse response) { List<SampleEntity> chunk = new ArrayList<SampleEntity>(); for (SearchHit searchHit : response.getHits()) { if (response.getHits().getHits().length <= 0) { return null; } SampleEntity user = new SampleEntity(); user.setId(searchHit.getId()); user.setMessage((String) searchHit.getSource().get("message")); chunk.add(user); } if (chunk.size() > 0) { return new FacetedPageImpl<SampleEntity>(chunk); } return null; } }); if (page != null) { sampleEntities.addAll(page.getContent()); } else { hasRecords = false; } } assertThat(sampleEntities.size(), is(equalTo(30))); }
From source file:org.springframework.data.elasticsearch.core.ElasticsearchTemplateTests.java
@Test public void shouldReturnHighlightedFieldsForGivenQueryAndFields() { //given/* w ww. java 2s . c o m*/ String documentId = randomNumeric(5); String actualMessage = "some test message"; String highlightedMessage = "some <em>test</em> message"; SampleEntity sampleEntity = new SampleEntity(); sampleEntity.setId(documentId); sampleEntity.setMessage(actualMessage); sampleEntity.setVersion(System.currentTimeMillis()); IndexQuery indexQuery = new IndexQuery(); indexQuery.setId(documentId); indexQuery.setObject(sampleEntity); elasticsearchTemplate.index(indexQuery); elasticsearchTemplate.refresh(SampleEntity.class, true); SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(termQuery("message", "test")) .withHighlightFields(new HighlightBuilder.Field("message")).build(); Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery, new ResultsMapper<SampleEntity>() { @Override public FacetedPage<SampleEntity> mapResults(SearchResponse response) { List<SampleEntity> chunk = new ArrayList<SampleEntity>(); for (SearchHit searchHit : response.getHits()) { if (response.getHits().getHits().length <= 0) { return null; } SampleEntity user = new SampleEntity(); user.setId(searchHit.getId()); user.setMessage((String) searchHit.getSource().get("message")); user.setHighlightedMessage( searchHit.getHighlightFields().get("message").fragments()[0].toString()); chunk.add(user); } if (chunk.size() > 0) { return new FacetedPageImpl<SampleEntity>(chunk); } return null; } }); assertThat(sampleEntities.getContent().get(0).getHighlightedMessage(), is(highlightedMessage)); }