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

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

Introduction

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

Prototype

public String getId() 

Source Link

Usage

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

@Test
public void shouldIndexDocumentForSpecifiedSource() {

    // given/*ww w .  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()));
}

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

private IndexRequestBuilder prepareIndex(IndexQuery query) {
    try {//from   www .  java  2s.c  o  m
        String indexName = isBlank(query.getIndexName())
                ? retrieveIndexNameFromPersistentEntity(query.getObject().getClass())[0]
                : query.getIndexName();
        String type = isBlank(query.getType())
                ? retrieveTypeFromPersistentEntity(query.getObject().getClass())[0]
                : query.getType();

        IndexRequestBuilder indexRequestBuilder = client.prepareIndex(indexName, type, query.getId())
                .setSource(objectMapper.writeValueAsString(query.getObject()));

        if (query.getParentId() != null) {
            indexRequestBuilder.setParent(query.getParentId());
        }

        if (query.getVersion() != null) {
            indexRequestBuilder.setVersion(query.getVersion());
            indexRequestBuilder.setVersionType(EXTERNAL);
        }
        return indexRequestBuilder;
    } catch (IOException e) {
        throw new ElasticsearchException("failed to index the document [id: " + query.getId() + "]", e);
    }
}