Example usage for org.springframework.data.elasticsearch.core.query CriteriaQuery CriteriaQuery

List of usage examples for org.springframework.data.elasticsearch.core.query CriteriaQuery CriteriaQuery

Introduction

In this page you can find the example usage for org.springframework.data.elasticsearch.core.query CriteriaQuery CriteriaQuery.

Prototype

public CriteriaQuery(Criteria criteria) 

Source Link

Usage

From source file:example.springdata.elasticsearch.conference.ElasticsearchOperationsTest.java

@Test
public void textSearch() throws ParseException {

    String expectedDate = "2014-10-29";
    String expectedWord = "java";
    CriteriaQuery query = new CriteriaQuery(new Criteria("_all").contains(expectedWord)
            .and(new Criteria("date").greaterThanEqual(expectedDate)));

    List<Conference> result = operations.queryForList(query, Conference.class);

    assertThat(result, hasSize(3));/* w  ww .ja v  a 2 s . c o  m*/

    for (Conference conference : result) {
        assertThat(conference.getKeywords(), hasItem(expectedWord));
        assertThat(format.parse(conference.getDate()), greaterThan(format.parse(expectedDate)));
    }
}

From source file:example.springdata.elasticsearch.conference.ElasticsearchOperationsTest.java

@Test
public void geoSpatialSearch() {

    GeoPoint startLocation = new GeoPoint(50.0646501D, 19.9449799D);
    String range = "330mi"; // or 530km
    CriteriaQuery query = new CriteriaQuery(new Criteria("location").within(startLocation, range));

    List<Conference> result = operations.queryForList(query, Conference.class);

    assertThat(result, hasSize(2));//from w  ww.j a  v  a2s  .  co m
}

From source file:example.springdata.elasticsearch.ElasticsearchOperationsTest.java

@Test
public void geoSpatialSearch() {

    String startLocation = "50.0646501,19.9449799";
    String range = "330mi"; // or 530km
    CriteriaQuery query = new CriteriaQuery(new Criteria("location").within(startLocation, range));

    List<Conference> result = operations.queryForList(query, Conference.class);

    assertThat(result, hasSize(2));/*from w ww.  j  av a2s  . co  m*/
}

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

@Test
public void shouldReturnCountForGivenCriteriaQuery() {
    // given//w w w  .j ava 2 s . 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);
    CriteriaQuery criteriaQuery = new CriteriaQuery(new Criteria());
    // when
    long count = elasticsearchTemplate.count(criteriaQuery, SampleEntity.class);
    // then
    assertThat(count, is(equalTo(1L)));
}

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

@Test
public void shouldExecuteGivenCriteriaQuery() {
    // given/*from w  w w .  j a v  a  2s.  co m*/
    String documentId = randomNumeric(5);
    SampleEntity sampleEntity = SampleEntity.builder().id(documentId).message("test message")
            .version(System.currentTimeMillis()).build();

    IndexQuery indexQuery = getIndexQuery(sampleEntity);

    elasticsearchTemplate.index(indexQuery);
    elasticsearchTemplate.refresh(SampleEntity.class);
    CriteriaQuery criteriaQuery = new CriteriaQuery(new Criteria("message").contains("test"));

    // when
    SampleEntity sampleEntity1 = elasticsearchTemplate.queryForObject(criteriaQuery, SampleEntity.class);
    // then
    assertThat(sampleEntity1, is(notNullValue()));
}

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

@Test
public void shouldDeleteGivenCriteriaQuery() throws InterruptedException {
    // given//from w ww.  jav  a2s  . c  o  m
    String documentId = randomNumeric(5);
    SampleEntity sampleEntity = SampleEntity.builder().id(documentId).message("test message")
            .version(System.currentTimeMillis()).build();

    IndexQuery indexQuery = getIndexQuery(sampleEntity);

    elasticsearchTemplate.index(indexQuery);
    elasticsearchTemplate.refresh(SampleEntity.class);
    CriteriaQuery criteriaQuery = new CriteriaQuery(new Criteria("message").contains("test"));

    // when
    elasticsearchTemplate.delete(criteriaQuery, SampleEntity.class);
    elasticsearchTemplate.refresh(SampleEntity.class);
    // then
    StringQuery stringQuery = new StringQuery(matchAllQuery().toString());
    List<SampleEntity> sampleEntities = elasticsearchTemplate.queryForList(stringQuery, SampleEntity.class);

    assertThat(sampleEntities.size(), is(0));
}

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

@Test
public void shouldReturnResultsWithScanAndScrollForGivenCriteriaQuery() {
    //given/*from  ww  w .  j a  va  2 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, 1000, false);
    List<SampleEntity> sampleEntities = new ArrayList<>();
    boolean hasRecords = true;
    while (hasRecords) {
        Page<SampleEntity> page = elasticsearchTemplate.scroll(scrollId, 5000L, SampleEntity.class);
        if (page.hasContent()) {
            sampleEntities.addAll(page.getContent());
        } else {
            hasRecords = false;
        }
    }
    elasticsearchTemplate.clearScroll(scrollId);
    assertThat(sampleEntities.size(), is(equalTo(30)));
    assertThat(sampleEntities, containsInAnyOrder(
            entities.stream().map(IndexQuery::getObject).map(Matchers::equalTo).collect(Collectors.toList())));
}

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

@Test
public void shouldReturnResultsWithScanAndScrollForSpecifiedFieldsForCriteriaCriteria() {
    //given/*w ww  .  j a  va 2s .co  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.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 shouldReturnResultsForScanAndScrollWithCustomResultMapperForGivenCriteriaQuery() {
    //given//  w w w  . j a  va2 s.com
    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 shouldReturnResultsWithScanAndScrollForGivenCriteriaQueryAndClass() {
    //given// ww w .  j av  a2 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.setPageable(new PageRequest(0, 10));

    String scrollId = elasticsearchTemplate.scan(criteriaQuery, 1000, false, SampleEntity.class);
    List<SampleEntity> sampleEntities = new ArrayList<SampleEntity>();
    boolean hasRecords = true;
    while (hasRecords) {
        Page<SampleEntity> page = elasticsearchTemplate.scroll(scrollId, 5000L, SampleEntity.class);
        if (page.hasContent()) {
            sampleEntities.addAll(page.getContent());
        } else {
            hasRecords = false;
        }
    }
    elasticsearchTemplate.clearScroll(scrollId);
    assertThat(sampleEntities.size(), is(equalTo(30)));
}