Example usage for org.springframework.data.elasticsearch.core.query IndexQuery setSource

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

Introduction

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

Prototype

public void setSource(String source) 

Source Link

Usage

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

@Test
public void shouldIndexDocumentForSpecifiedSource() {

    // given/*from   www  .  j ava  2 s  . c o  m*/
    String documentSource = "{\"id\":\"2333343434\",\"type\":null,\"message\":\"some message\",\"rate\":0,\"available\":false,\"highlightedMessage\":null,\"version\":1385208779482}";
    IndexQuery indexQuery = new IndexQuery();
    indexQuery.setId("2333343434");
    indexQuery.setSource(documentSource);
    indexQuery.setIndexName(INDEX_NAME);
    indexQuery.setType(TYPE_NAME);
    // when
    elasticsearchTemplate.index(indexQuery);
    elasticsearchTemplate.refresh(SampleEntity.class);
    SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(termQuery("id", indexQuery.getId()))
            .withIndices(INDEX_NAME).withTypes(TYPE_NAME).build();
    // then
    Page<SampleEntity> page = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class,
            new JestSearchResultMapper() {
                @Override
                public <T> Page<T> mapResults(SearchResult response, Class<T> clazz, Pageable pageable) {
                    List<SampleEntity> values = new ArrayList<SampleEntity>();
                    for (SearchResult.Hit<JsonObject, Void> searchHit : response.getHits(JsonObject.class)) {
                        SampleEntity sampleEntity = new SampleEntity();
                        sampleEntity.setId(searchHit.source.get(JestResult.ES_METADATA_ID).getAsString());
                        sampleEntity.setMessage(searchHit.source.get("message").getAsString());
                        values.add(sampleEntity);
                    }
                    return new PageImpl<T>((List<T>) values);
                }
            });
    assertThat(page, is(notNullValue()));
    assertThat(page.getContent().size(), is(1));
    assertThat(page.getContent().get(0).getId(), is(indexQuery.getId()));
}