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

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

Introduction

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

Prototype

long getTotalElements();

Source Link

Document

Returns the total amount of elements.

Usage

From source file:com.github.vanroy.springdata.jest.JestElasticsearchTemplateTests.java

@Test
public void shouldDeleteDocumentBySpecifiedTypeUsingDeleteQuery() {
    // given/*from  w  w  w. ja  v  a 2  s .  co 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);
    // when
    DeleteQuery deleteQuery = new DeleteQuery();
    deleteQuery.setQuery(termQuery("id", documentId));
    deleteQuery.setIndex(INDEX_NAME);
    deleteQuery.setType(TYPE_NAME);
    elasticsearchTemplate.delete(deleteQuery);
    elasticsearchTemplate.refresh(INDEX_NAME);
    // then
    SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(termQuery("id", documentId)).build();
    Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class);
    assertThat(sampleEntities.getTotalElements(), equalTo(0L));
}

From source file:com.github.vanroy.springdata.jest.JestElasticsearchTemplateTests.java

@Test
public void shouldDoBulkIndex() {
    // given// w w w .j a  v a  2  s  . com
    List<IndexQuery> indexQueries;
    // first document
    String documentId = randomNumeric(5);
    SampleEntity sampleEntity1 = SampleEntity.builder().id(documentId).message("some message")
            .version(System.currentTimeMillis()).build();

    // second document
    String documentId2 = randomNumeric(5);
    SampleEntity sampleEntity2 = SampleEntity.builder().id(documentId2).message("some message")
            .version(System.currentTimeMillis()).build();

    indexQueries = getIndexQueries(Arrays.asList(sampleEntity1, sampleEntity2));

    // when
    elasticsearchTemplate.bulkIndex(indexQueries);
    elasticsearchTemplate.refresh(SampleEntity.class);
    // then
    SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
    Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class);
    assertThat(sampleEntities.getTotalElements(), is(equalTo(2L)));
}

From source file:com.github.vanroy.springdata.jest.JestElasticsearchTemplateTests.java

@Test
public void shouldReturnDocumentAboveMinimalScoreGivenQuery() {
    // given//from   w  w  w  .  j a v  a2  s  .  c o m
    List<IndexQuery> indexQueries = new ArrayList<>();

    indexQueries.add(buildIndex(SampleEntity.builder().id("1").message("ab").build()));
    indexQueries.add(buildIndex(SampleEntity.builder().id("2").message("bc").build()));
    indexQueries.add(buildIndex(SampleEntity.builder().id("3").message("ac").build()));

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

    // when
    SearchQuery searchQuery = new NativeSearchQueryBuilder()
            .withQuery(
                    boolQuery().must(wildcardQuery("message", "*a*")).should(wildcardQuery("message", "*b*")))
            .withIndices(INDEX_NAME).withTypes(TYPE_NAME).withMinScore(0.5F).build();

    Page<SampleEntity> page = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class);
    // then
    assertThat(page.getTotalElements(), is(1L));
    assertThat(page.getContent().get(0).getMessage(), is("ab"));
}

From source file:com.github.vanroy.springdata.jest.JestElasticsearchTemplateTests.java

@Test
public void shouldDoBulkIndexWithoutId() {
    // given//from  ww  w .j ava 2s  .c  o m
    List<IndexQuery> indexQueries = new ArrayList<>();
    // first document
    SampleEntity sampleEntity1 = new SampleEntity();
    sampleEntity1.setMessage("some message");
    sampleEntity1.setVersion(System.currentTimeMillis());

    IndexQuery indexQuery1 = new IndexQuery();
    indexQuery1.setObject(sampleEntity1);
    indexQueries.add(indexQuery1);

    // second document
    SampleEntity sampleEntity2 = new SampleEntity();
    sampleEntity2.setMessage("some message");
    sampleEntity2.setVersion(System.currentTimeMillis());

    IndexQuery indexQuery2 = new IndexQuery();
    indexQuery2.setObject(sampleEntity2);
    indexQueries.add(indexQuery2);
    // when
    elasticsearchTemplate.bulkIndex(indexQueries);
    elasticsearchTemplate.refresh(SampleEntity.class);
    // then
    SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).build();
    Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class);
    assertThat(sampleEntities.getTotalElements(), is(equalTo(2L)));

    assertThat(sampleEntities.getContent().get(0).getId(), is(notNullValue()));
    assertThat(sampleEntities.getContent().get(1).getId(), is(notNullValue()));
}

From source file:com.github.vanroy.springdata.jest.JestElasticsearchTemplateTests.java

@Test
public void shouldFilterSearchResultsForGivenFilter() {
    // given//from www .  j av  a  2  s.co  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())
            .withFilter(QueryBuilders.boolQuery().must(QueryBuilders.termQuery("id", documentId))).build();
    // when
    Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class);
    // then
    assertThat(sampleEntities.getTotalElements(), equalTo(1L));
}

From source file:com.github.vanroy.springdata.jest.JestElasticsearchTemplateTests.java

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

    StringQuery stringQuery = new StringQuery(matchAllQuery().toString());
    // when
    Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(stringQuery, SampleEntity.class);
    // then
    assertThat(sampleEntities.getTotalElements(), equalTo(1L));
    assertThat(sampleEntities.getContent().get(0), equalTo(sampleEntity));
}

From source file:com.github.vanroy.springdata.jest.JestElasticsearchTemplateTests.java

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

    StringQuery stringQuery = new StringQuery(matchAllQuery().toString(), new PageRequest(0, 10));
    // when
    Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(stringQuery, SampleEntity.class);

    // then
    assertThat(sampleEntities.getTotalElements(), is(greaterThanOrEqualTo(1L)));
}

From source file:com.github.vanroy.springdata.jest.JestElasticsearchTemplateTests.java

@Test
@Ignore("By default, the search request will fail if there is no mapping associated with a field. The ignore_unmapped option allows to ignore fields that have no mapping and not sort by them")
public void shouldReturnSortedPageableResultsGivenStringQuery() {
    // given// w w w  .  ja va  2  s. c  o m
    String documentId = randomNumeric(5);
    SampleEntity sampleEntity = new SampleEntity();
    sampleEntity.setId(documentId);
    sampleEntity.setMessage("some message");
    sampleEntity.setVersion(System.currentTimeMillis());

    IndexQuery indexQuery = new IndexQuery();
    indexQuery.setId(documentId);
    indexQuery.setObject(sampleEntity);

    elasticsearchTemplate.index(indexQuery);
    elasticsearchTemplate.refresh(SampleEntity.class);

    StringQuery stringQuery = new StringQuery(matchAllQuery().toString(), new PageRequest(0, 10),
            new Sort(new Sort.Order(Sort.Direction.ASC, "messsage")));
    // when
    Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(stringQuery, SampleEntity.class);
    // then
    assertThat(sampleEntities.getTotalElements(), is(greaterThanOrEqualTo(1L)));
}

From source file:com.github.vanroy.springdata.jest.JestElasticsearchTemplateTests.java

@Test
@Ignore("Missing fields implementation in Jest")
public void shouldUseScriptedFields() {
    // given/* ww w .ja va2  s . co m*/
    String documentId = randomNumeric(5);
    SampleEntity sampleEntity = new SampleEntity();
    sampleEntity.setId(documentId);
    sampleEntity.setRate(2);
    sampleEntity.setMessage("some message");
    sampleEntity.setVersion(System.currentTimeMillis());

    IndexQuery indexQuery = new IndexQuery();
    indexQuery.setId(documentId);
    indexQuery.setObject(sampleEntity);

    elasticsearchTemplate.index(indexQuery);
    elasticsearchTemplate.refresh(SampleEntity.class);

    Map<String, Object> params = new HashMap<>();
    params.put("factor", 2);
    // when
    SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery())
            .withScriptField(new ScriptField("scriptedRate",
                    new Script("doc['rate'].value * factor", ScriptService.ScriptType.INLINE, null, params)))
            .build();
    Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class);
    // then
    assertThat(sampleEntities.getTotalElements(), equalTo(1L));
    assertThat(sampleEntities.getContent().get(0).getScriptedRate(), equalTo(4L));
}

From source file:com.github.vanroy.springdata.jest.JestElasticsearchTemplateTests.java

@Test
public void shouldSortResultsGivenSortCriteria() {
    // given//from w  w w.  j  ava  2 s . com
    List<IndexQuery> indexQueries;
    // first document
    String documentId = randomNumeric(5);
    SampleEntity sampleEntity1 = SampleEntity.builder().id(documentId).message("abc").rate(10)
            .version(System.currentTimeMillis()).build();

    // second document
    String documentId2 = randomNumeric(5);
    SampleEntity sampleEntity2 = SampleEntity.builder().id(documentId2).message("xyz").rate(5)
            .version(System.currentTimeMillis()).build();

    // third document
    String documentId3 = randomNumeric(5);
    SampleEntity sampleEntity3 = SampleEntity.builder().id(documentId3).message("xyz").rate(15)
            .version(System.currentTimeMillis()).build();

    indexQueries = getIndexQueries(Arrays.asList(sampleEntity1, sampleEntity2, sampleEntity3));

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

    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()));
}