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

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

Introduction

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

Prototype

public Criteria getCriteria() 

Source Link

Usage

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

@Override
public <T> Page<T> queryForPage(CriteriaQuery criteriaQuery, Class<T> clazz) {
    QueryBuilder query = new CriteriaQueryProcessor().createQueryFromCriteria(criteriaQuery.getCriteria());
    SearchResponse response = prepareSearch(criteriaQuery, clazz).setQuery(query).execute().actionGet();
    return mapResults(response, clazz, criteriaQuery.getPageable());
}

From source file:org.springframework.data.elasticsearch.core.query.CriteriaQueryTests.java

@Test
public void shouldPerformIsOperation() {
    // given/*  ww w.  ja  v  a  2 s  . co  m*/
    List<IndexQuery> indexQueries = new ArrayList<IndexQuery>();
    // first document
    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);
    indexQueries.add(indexQuery);

    elasticsearchTemplate.bulkIndex(indexQueries);
    elasticsearchTemplate.refresh(SampleEntity.class, true);
    CriteriaQuery criteriaQuery = new CriteriaQuery(new Criteria("message").is("some message"));
    // when
    Page<SampleEntity> page = elasticsearchTemplate.queryForPage(criteriaQuery, SampleEntity.class);
    // then
    assertThat("message", is(criteriaQuery.getCriteria().getField().getName()));
    assertThat(page.getTotalElements(), is(greaterThanOrEqualTo(1L)));
}

From source file:org.springframework.data.elasticsearch.core.query.CriteriaQueryTests.java

@Test
public void shouldPerformMultipleIsOperations() {
    // given/*from www.  j  ava 2s  .  com*/
    List<IndexQuery> indexQueries = new ArrayList<IndexQuery>();
    // first document
    String documentId = randomNumeric(5);
    SampleEntity sampleEntity1 = new SampleEntity();
    sampleEntity1.setId(documentId);
    sampleEntity1.setMessage("some message");
    sampleEntity1.setVersion(System.currentTimeMillis());

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

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

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

    elasticsearchTemplate.bulkIndex(indexQueries);
    elasticsearchTemplate.refresh(SampleEntity.class, true);
    CriteriaQuery criteriaQuery = new CriteriaQuery(
            new Criteria("message").is("some message").is("test message"));
    // when
    Page<SampleEntity> page = elasticsearchTemplate.queryForPage(criteriaQuery, SampleEntity.class);
    // then
    assertThat("message", is(criteriaQuery.getCriteria().getField().getName()));
    assertThat(page.getTotalElements(), is(greaterThanOrEqualTo(2L)));
}

From source file:org.springframework.data.elasticsearch.core.query.CriteriaQueryTests.java

@Test
public void shouldPerformEndsWithOperation() {
    // given/*from  w w  w.  j  a va  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("some message");
    sampleEntity1.setVersion(System.currentTimeMillis());

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

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

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

    elasticsearchTemplate.bulkIndex(indexQueries);
    elasticsearchTemplate.refresh(SampleEntity.class, true);
    Criteria criteria = new Criteria("message").endsWith("end");
    CriteriaQuery criteriaQuery = new CriteriaQuery(criteria);
    // when
    SampleEntity sampleEntity = elasticsearchTemplate.queryForObject(criteriaQuery, SampleEntity.class);
    // then
    assertThat("message", is(criteriaQuery.getCriteria().getField().getName()));
    assertThat(sampleEntity, is(notNullValue()));
}

From source file:org.springframework.data.elasticsearch.core.query.CriteriaQueryTests.java

@Test
public void shouldPerformStartsWithOperation() {
    // given// w w w.  j a va  2s.c o  m
    List<IndexQuery> indexQueries = new ArrayList<IndexQuery>();
    // first document
    String documentId = randomNumeric(5);
    SampleEntity sampleEntity1 = new SampleEntity();
    sampleEntity1.setId(documentId);
    sampleEntity1.setMessage("start some message");
    sampleEntity1.setVersion(System.currentTimeMillis());

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

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

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

    elasticsearchTemplate.bulkIndex(indexQueries);
    elasticsearchTemplate.refresh(SampleEntity.class, true);
    Criteria criteria = new Criteria("message").startsWith("start");
    CriteriaQuery criteriaQuery = new CriteriaQuery(criteria);
    // when
    SampleEntity sampleEntity = elasticsearchTemplate.queryForObject(criteriaQuery, SampleEntity.class);
    // then
    assertThat("message", is(criteriaQuery.getCriteria().getField().getName()));
    assertThat(sampleEntity, is(notNullValue()));
}

From source file:org.springframework.data.elasticsearch.core.query.CriteriaQueryTests.java

@Test
public void shouldPerformContainsOperation() {
    // given/*from   w  w w.j  av 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("contains some message");
    sampleEntity1.setVersion(System.currentTimeMillis());

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

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

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

    elasticsearchTemplate.bulkIndex(indexQueries);
    elasticsearchTemplate.refresh(SampleEntity.class, true);
    CriteriaQuery criteriaQuery = new CriteriaQuery(new Criteria("message").contains("contains"));
    // when
    SampleEntity sampleEntity = elasticsearchTemplate.queryForObject(criteriaQuery, SampleEntity.class);
    // then
    assertThat("message", is(criteriaQuery.getCriteria().getField().getName()));
    assertThat(sampleEntity, is(notNullValue()));
}

From source file:org.springframework.data.elasticsearch.core.query.CriteriaQueryTests.java

@Test
public void shouldExecuteExpression() {
    // given//from   w  ww  .  j  a v a 2 s  .c  om
    // todo
    List<IndexQuery> indexQueries = new ArrayList<IndexQuery>();
    // first document
    String documentId = randomNumeric(5);
    SampleEntity sampleEntity1 = new SampleEntity();
    sampleEntity1.setId(documentId);
    sampleEntity1.setMessage("elasticsearch search");
    sampleEntity1.setVersion(System.currentTimeMillis());

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

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

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

    elasticsearchTemplate.bulkIndex(indexQueries);
    elasticsearchTemplate.refresh(SampleEntity.class, true);
    CriteriaQuery criteriaQuery = new CriteriaQuery(
            new Criteria("message").expression("+elasticsearch || test"));
    // when
    SampleEntity sampleEntity = elasticsearchTemplate.queryForObject(criteriaQuery, SampleEntity.class);
    // then
    assertThat("message", is(criteriaQuery.getCriteria().getField().getName()));
    assertThat(sampleEntity, is(notNullValue()));
}

From source file:org.springframework.data.elasticsearch.core.query.CriteriaQueryTests.java

@Test
public void shouldExecuteCriteriaChain() {
    // given/*from w  w w. j  a 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("some message search");
    sampleEntity1.setVersion(System.currentTimeMillis());

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

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

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

    elasticsearchTemplate.bulkIndex(indexQueries);
    elasticsearchTemplate.refresh(SampleEntity.class, true);
    CriteriaQuery criteriaQuery = new CriteriaQuery(new Criteria("message").startsWith("some")
            .endsWith("search").contains("message").is("some message search"));
    // when
    SampleEntity sampleEntity = elasticsearchTemplate.queryForObject(criteriaQuery, SampleEntity.class);
    // then
    assertThat("message", is(criteriaQuery.getCriteria().getField().getName()));
    assertThat(sampleEntity, is(notNullValue()));
}

From source file:org.springframework.data.elasticsearch.core.query.CriteriaQueryTests.java

@Test
public void shouldPerformIsNotOperation() {
    // given//w  w  w . j a  v  a  2s.c  om
    List<IndexQuery> indexQueries = new ArrayList<IndexQuery>();
    // first document
    String documentId = randomNumeric(5);
    SampleEntity sampleEntity1 = new SampleEntity();
    sampleEntity1.setId(documentId);
    sampleEntity1.setMessage("bar");
    sampleEntity1.setVersion(System.currentTimeMillis());

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

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

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

    elasticsearchTemplate.bulkIndex(indexQueries);
    elasticsearchTemplate.refresh(SampleEntity.class, true);
    CriteriaQuery criteriaQuery = new CriteriaQuery(new Criteria("message").is("foo").not());
    // when
    Page<SampleEntity> page = elasticsearchTemplate.queryForPage(criteriaQuery, SampleEntity.class);
    // then
    assertTrue(criteriaQuery.getCriteria().isNegating());
    assertThat(page, is(notNullValue()));
    assertFalse(page.iterator().next().getMessage().contains("foo"));
}