Example usage for org.springframework.data.domain Page getContent

List of usage examples for org.springframework.data.domain Page getContent

Introduction

In this page you can find the example usage for org.springframework.data.domain Page getContent.

Prototype

List<T> getContent();

Source Link

Document

Returns the page content as List .

Usage

From source file:org.springframework.data.elasticsearch.core.ElasticsearchTemplate.java

@Override
public <T> T queryForObject(StringQuery query, Class<T> clazz) {
    Page<T> page = queryForPage(query, clazz);
    Assert.isTrue(page.getTotalElements() < 2, "Expected 1 but found " + page.getTotalElements() + " results");
    return page.getTotalElements() > 0 ? page.getContent().get(0) : null;
}

From source file:org.springframework.data.elasticsearch.core.ElasticsearchTemplateTests.java

@Test
public void shouldSortResultsGivenSortCriteria() {
    // given// w w  w  . ja v  a 2  s.c o  m
    List<IndexQuery> indexQueries = new ArrayList<IndexQuery>();
    // first document
    String documentId = randomNumeric(5);
    SampleEntity sampleEntity1 = new SampleEntity();
    sampleEntity1.setId(documentId);
    sampleEntity1.setMessage("abc");
    sampleEntity1.setRate(10);
    sampleEntity1.setVersion(System.currentTimeMillis());

    IndexQuery indexQuery1 = new IndexQuery();
    indexQuery1.setId(documentId);
    indexQuery1.setObject(sampleEntity1);

    // second document
    String documentId2 = randomNumeric(5);
    SampleEntity sampleEntity2 = new SampleEntity();
    sampleEntity2.setId(documentId2);
    sampleEntity2.setMessage("xyz");
    sampleEntity2.setRate(5);
    sampleEntity2.setVersion(System.currentTimeMillis());

    IndexQuery indexQuery2 = new IndexQuery();
    indexQuery2.setId(documentId2);
    indexQuery2.setObject(sampleEntity2);

    // third document
    String documentId3 = randomNumeric(5);
    SampleEntity sampleEntity3 = new SampleEntity();
    sampleEntity3.setId(documentId3);
    sampleEntity3.setMessage("xyz");
    sampleEntity3.setRate(15);
    sampleEntity3.setVersion(System.currentTimeMillis());

    IndexQuery indexQuery3 = new IndexQuery();
    indexQuery3.setId(documentId3);
    indexQuery3.setObject(sampleEntity3);

    indexQueries.add(indexQuery1);
    indexQueries.add(indexQuery2);
    indexQueries.add(indexQuery3);

    elasticsearchTemplate.bulkIndex(indexQueries);
    elasticsearchTemplate.refresh(SampleEntity.class, true);

    SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
            .withSort(new FieldSortBuilder("rate").ignoreUnmapped(true).order(SortOrder.ASC)).build();
    // when
    Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class);
    // then
    assertThat(sampleEntities.getTotalElements(), equalTo(3L));
    assertThat(sampleEntities.getContent().get(0).getRate(), is(sampleEntity2.getRate()));
}

From source file:org.springframework.data.elasticsearch.core.ElasticsearchTemplateTests.java

@Test
public void shouldReturnSpecifiedFields() {
    // given//  ww w  . j  ava2 s. c o m
    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 shouldReturnSimilarResultsGivenMoreLikeThisQuery() {
    // given/*from  w w  w  .  jav  a 2  s  . c  o m*/
    String sampleMessage = "So we build a web site or an application and want to add search to it, "
            + "and then it hits us: getting search working is hard. We want our search solution to be fast,"
            + " we want a painless setup and a completely free search schema, we want to be able to index data simply using JSON over HTTP, "
            + "we want our search server to be always available, we want to be able to start with one machine and scale to hundreds, "
            + "we want real-time search, we want simple multi-tenancy, and we want a solution that is built for the cloud.";

    String documentId1 = randomNumeric(5);
    SampleEntity sampleEntity1 = new SampleEntity();
    sampleEntity1.setId(documentId1);
    sampleEntity1.setMessage(sampleMessage);
    sampleEntity1.setVersion(System.currentTimeMillis());

    IndexQuery indexQuery1 = new IndexQuery();
    indexQuery1.setId(documentId1);
    indexQuery1.setObject(sampleEntity1);

    elasticsearchTemplate.index(indexQuery1);

    String documentId2 = randomNumeric(5);
    SampleEntity sampleEntity2 = new SampleEntity();
    sampleEntity2.setId(documentId2);
    sampleEntity2.setMessage(sampleMessage);
    sampleEntity2.setVersion(System.currentTimeMillis());

    IndexQuery indexQuery2 = new IndexQuery();
    indexQuery2.setId(documentId2);
    indexQuery2.setObject(sampleEntity2);

    elasticsearchTemplate.index(indexQuery2);
    elasticsearchTemplate.refresh(SampleEntity.class, true);

    MoreLikeThisQuery moreLikeThisQuery = new MoreLikeThisQuery();
    moreLikeThisQuery.setId(documentId2);
    moreLikeThisQuery.addFields("message");
    moreLikeThisQuery.setMinDocFreq(1);
    // when
    Page<SampleEntity> sampleEntities = elasticsearchTemplate.moreLikeThis(moreLikeThisQuery,
            SampleEntity.class);

    // then
    assertThat(sampleEntities.getTotalElements(), is(equalTo(1L)));
    assertThat(sampleEntities.getContent(), hasItem(sampleEntity1));
}

From source file:org.springframework.data.elasticsearch.core.ElasticsearchTemplateTests.java

@Test
public void shouldReturnResultsWithScanAndScroll() {
    //given/*from  ww  w .  j a v a  2s .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.ja  va2s. 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));

}

From source file:org.springframework.data.elasticsearch.repositories.CustomMethodRepositoryTests.java

@Test
public void shouldExecuteCustomMethodForNotIn() {
    // given/*from   ww  w  . ja  v a2  s  . c  om*/
    String documentId = randomNumeric(5);
    SampleEntity sampleEntity = new SampleEntity();
    sampleEntity.setId(documentId);
    sampleEntity.setType("test");
    sampleEntity.setMessage("foo");
    repository.save(sampleEntity);

    // given
    String documentId2 = randomNumeric(5);
    SampleEntity sampleEntity2 = new SampleEntity();
    sampleEntity2.setId(documentId2);
    sampleEntity2.setType("test");
    sampleEntity2.setMessage("bar");
    repository.save(sampleEntity2);

    List<String> ids = Arrays.asList(documentId);

    // when
    Page<SampleEntity> page = repository.findByIdNotIn(ids, new PageRequest(0, 10));
    // then
    assertThat(page, is(notNullValue()));
    assertThat(page.getTotalElements(), is(equalTo(1L)));
    assertThat(page.getContent().get(0).getId(), is(documentId2));
}

From source file:org.springframework.data.elasticsearch.repositories.CustomMethodRepositoryTests.java

@Test
public void shouldReturnPageableResultsWithQueryAnnotationExpectedPageSize() {
    // given//from  w  w w  . j  a  v a  2s.  co  m
    for (int i = 0; i < 30; i++) {
        String documentId = String.valueOf(i);
        SampleEntity sampleEntity = new SampleEntity();
        sampleEntity.setId(documentId);
        sampleEntity.setMessage("message");
        sampleEntity.setVersion(System.currentTimeMillis());
        repository.save(sampleEntity);
    }
    // when
    Page<SampleEntity> pageResult = repository.findByMessage("message",
            new PageRequest(0, 23, new Sort(new Sort.Order(Sort.Direction.ASC, "message"))));
    // then
    assertThat(pageResult.getTotalElements(), is(equalTo(30L)));
    assertThat(pageResult.getContent().size(), is(equalTo(23)));
}

From source file:org.springframework.data.elasticsearch.repositories.CustomMethodRepositoryTests.java

@Test
public void shouldReturnPageableResultsWithGivenSortingOrder() {
    // given/*from w  w w.jav  a2 s .c o  m*/
    String documentId = random(5);
    SampleEntity sampleEntity = new SampleEntity();
    sampleEntity.setId(documentId);
    sampleEntity.setMessage("abc");
    sampleEntity.setVersion(System.currentTimeMillis());
    repository.save(sampleEntity);

    String documentId2 = randomNumeric(5);
    SampleEntity sampleEntity2 = new SampleEntity();
    sampleEntity2.setId(documentId2);
    sampleEntity2.setMessage("abd");
    sampleEntity.setVersion(System.currentTimeMillis());
    repository.save(sampleEntity2);

    String documentId3 = randomNumeric(5);
    SampleEntity sampleEntity3 = new SampleEntity();
    sampleEntity3.setId(documentId3);
    sampleEntity3.setMessage("abe");
    sampleEntity.setVersion(System.currentTimeMillis());
    repository.save(sampleEntity3);
    // when
    Page<SampleEntity> pageResult = repository.findByMessageContaining("a",
            new PageRequest(0, 23, new Sort(new Sort.Order(Sort.Direction.DESC, "message"))));
    // then
    assertThat(pageResult.getContent().isEmpty(), is(false));
    assertThat(pageResult.getContent().get(0).getMessage(), is(sampleEntity3.getMessage()));
}

From source file:org.springframework.data.elasticsearch.repositories.NestedObjectTests.java

@Test
public void shouldSearchUsingNestedQueryOnMultipleLevelNestedObject() {
    //given/*from   w w w .java2  s. c o  m*/
    List<IndexQuery> indexQueries = createPerson();

    //when
    elasticsearchTemplate.putMapping(PersonMultipleLevelNested.class);
    elasticsearchTemplate.bulkIndex(indexQueries);
    elasticsearchTemplate.refresh(PersonMultipleLevelNested.class, true);

    //then
    BoolQueryBuilder builder = boolQuery();
    builder.must(nestedQuery("girlFriends", termQuery("girlFriends.type", "temp")))
            .must(nestedQuery("girlFriends.cars", termQuery("girlFriends.cars.name", "Ford".toLowerCase())));

    SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(builder).build();

    Page<PersonMultipleLevelNested> personIndexed = elasticsearchTemplate.queryForPage(searchQuery,
            PersonMultipleLevelNested.class);
    assertThat(personIndexed, is(notNullValue()));
    assertThat(personIndexed.getTotalElements(), is(1L));
    assertThat(personIndexed.getContent().get(0).getId(), is("1"));
}