List of usage examples for org.springframework.data.elasticsearch.core.query IndexQuery getId
public String getId()
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); } }