List of usage examples for org.springframework.data.elasticsearch.core.query IndexQueryBuilder IndexQueryBuilder
IndexQueryBuilder
From source file:com.oneops.search.msg.index.impl.ESIndexer.java
private void index(String id, String type, String index, String message) { IndexQueryBuilder indexQueryBuilder = new IndexQueryBuilder().withIndexName(index); if (id != null) indexQueryBuilder.withId(String.valueOf(id)); IndexQuery query = indexQueryBuilder.withType(type).withSource(message).build(); String docId = template.index(query); logger.info("Indexed message id " + docId + " of type " + type + " index:" + index); }
From source file:com.company.project.data.elasticsearch.service.UserESService.java
public void crud() { //elasticsearchTemplate.deleteIndex("xxx"); //elasticsearchTemplate.createIndex("xxx"); elasticsearchTemplate.deleteIndex(User.class); elasticsearchTemplate.createIndex(User.class); elasticsearchTemplate.putMapping(User.class); elasticsearchTemplate.refresh(User.class, true); IndexQuery userIndex = new IndexQuery(); User user = new User(); user.setId("1"); user.setName("user1"); userIndex.setId("1"); userIndex.setObject(user);//from w w w. jav a 2 s. c o m //elasticsearchTemplate.index(userIndex); //elasticsearchTemplate.index(new IndexQueryBuilder().withObject(user).build()); IndexQuery indexQuery2 = new IndexQueryBuilder().withId(user.getId()).withIndexName("xuseridx") .withObject(user).build(); elasticsearchTemplate.bulkIndex(Arrays.asList(indexQuery2)); // userIndex = new IndexQuery(); // user = new User(); // user.setId("2"); // user.setName("user2"); // userIndex.setId("2"); // userIndex.setObject(user); // elasticsearchTemplate.index(userIndex); // // userIndex = new IndexQuery(); // user = new User(); // user.setId("3"); // user.setName("user3"); // userIndex.setId("3"); // userIndex.setObject(user); // elasticsearchTemplate.index(userIndex); elasticsearchTemplate.refresh(User.class, true); //QueryBuilder builder = nestedQuery("xuseridx", boolQuery().must(termQuery("xusertype.name", "user2")).must(termQuery("xusertype.name", "user3"))); //QueryBuilder builder = nestedQuery("xuseridx", boolQuery().must(fieldQuery("name", "user2")).must(fieldQuery("name", "user3"))); QueryBuilder builder = nestedQuery("xuseridx", boolQuery().must(termQuery("xusertype.name", "user2")).must(termQuery("xusertype.name", "user3"))); //SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(builder).build(); SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).withIndices("xuseridx") .build(); List persons = elasticsearchTemplate.queryForList(searchQuery, User.class); System.out.println("People size:" + (persons != null ? persons.size() : null)); }
From source file:com.company.project.data.elasticsearch.service.UserESServiceTest.java
/** * Test of crud method, of class UserESService. *///from w w w.j ava 2 s.co m //@Test public void testCrud() { System.out.println("crud"); //userESService.crud(); // TODO review the generated test code and remove the default call to fail. elasticsearchTemplate.deleteIndex("xuseridx"); elasticsearchTemplate.deleteIndex(User.class); //elasticsearchTemplate.createIndex(User.class); //elasticsearchTemplate.createIndex(User.class, user); elasticsearchTemplate.createIndex("xuseridx"); elasticsearchTemplate.putMapping(User.class); elasticsearchTemplate.refresh(User.class, true); boolean typeExists = elasticsearchTemplate.typeExists("xuseridx", "xusertype"); /** * Single index example */ String id = UUID.randomUUID().toString(); User user = new User(); user.setId(id); user.setName("user-" + id); IndexQuery userIndex = new IndexQuery(); userIndex.setId(id); userIndex.setObject(user); userIndex.setIndexName("xuseridx"); userIndex.setType("xusertype"); elasticsearchTemplate.index(userIndex); /** * Bulk index example */ id = UUID.randomUUID().toString(); user = new User(); user.setId(id); user.setName("user-" + id); IndexQuery indexQuery2 = new IndexQueryBuilder().withId(user.getId()).withIndexName("xuseridx") .withObject(user).build(); id = UUID.randomUUID().toString(); user = new User(); user.setId(id); user.setName("user-" + RandomStringUtils.random(5)); IndexQuery indexQuery3 = new IndexQueryBuilder().withId(user.getId()).withIndexName("xuseridx") .withObject(user).build(); elasticsearchTemplate.bulkIndex(Arrays.asList(indexQuery2, indexQuery3)); // alternative to index //userRepository.save(Arrays.asList(user)); elasticsearchTemplate.refresh(User.class, true); QueryBuilder builder = nestedQuery("xuseridx", boolQuery().must(termQuery("xusertype.name", "user2")).must(termQuery("xusertype.name", "user3"))); //https://github.com/BioMedCentralLtd/spring-data-elasticsearch-sample-application/blob/master/src/main/java/org/springframework/data/elasticsearch/entities/Article.java Page<User> pageUser = userRepository.findByName("user-" + id, new PageRequest(0, 10)); System.out.println("Page user total elements" + pageUser.getTotalElements()); System.out.println("Page user total elements" + pageUser.getTotalPages()); System.out.println("Page user first element" + pageUser.getContent().get(0).getName()); Iterable<User> pageUserSorted = userRepository .findAll(new Sort(new Sort.Order(Sort.Direction.ASC, "xusertype.name"))); System.out.println("Page user sorted total elements" + pageUserSorted.iterator().hasNext()); System.out.println("Page user sorted first element" + pageUserSorted.iterator().next().getName()); //SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(builder).build(); SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).withIndices("xuseridx") .build(); List persons = elasticsearchTemplate.queryForList(searchQuery, User.class); System.out.println("People size:" + (persons != null ? persons.size() : null)); searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()) .withFilter(boolFilter().must(existsFilter("name"))).withPageable(new PageRequest(0, 2)).build(); Page<User> users = userRepository.search(searchQuery); System.out.println("Page user query total elements" + users.getTotalElements()); System.out.println("Page user query total pages" + users.getTotalPages()); System.out.println("Page user query first element" + users.getContent().get(0).getName()); }
From source file:com.company.project.data.elasticsearch.service.UserESServiceTest.java
@Test public void testAggregation() { System.out.println("testAggregation"); elasticsearchTemplate.deleteIndex(Car.class); elasticsearchTemplate.createIndex("car_idx"); elasticsearchTemplate.putMapping(Car.class); elasticsearchTemplate.refresh(Car.class, true); boolean typeExists = elasticsearchTemplate.typeExists("car_idx", "car_type"); assertTrue(typeExists);// w w w . j a v a2 s . c o m /** * Single index example */ String id = "1"; Car car = new Car(); car.setId(id); car.setColor("red"); car.setPrice(10000); car.setMake("honda"); car.setSold("2014-10-28"); IndexQuery userIndex = new IndexQuery(); userIndex.setId(id); userIndex.setObject(car); userIndex.setIndexName("car_idx"); userIndex.setType("car_type"); elasticsearchTemplate.index(userIndex); /** * Bulk index example */ id = "2"; car = new Car(); car.setId(id); car.setColor("red"); car.setPrice(20000); car.setMake("honda"); car.setSold("2014-11-05"); IndexQuery indexQuery2 = new IndexQueryBuilder().withId(car.getId()).withIndexName("car_idx") .withObject(car).build(); id = "3"; car = new Car(); car.setId(id); car.setColor("green"); car.setPrice(30000); car.setMake("ford"); car.setSold("2014-05-18"); IndexQuery indexQuery3 = new IndexQueryBuilder().withId(car.getId()).withIndexName("car_idx") .withObject(car).build(); id = "4"; car = new Car(); car.setId(id); car.setColor("blue"); car.setPrice(15000); car.setMake("toyota"); car.setSold("2014-07-02"); IndexQuery indexQuery4 = new IndexQueryBuilder().withId(car.getId()).withIndexName("car_idx") .withObject(car).build(); id = "5"; car = new Car(); car.setId(id); car.setColor("green"); car.setPrice(12000); car.setMake("toyota"); car.setSold("2014-08-19"); IndexQuery indexQuery5 = new IndexQueryBuilder().withId(car.getId()).withIndexName("car_idx") .withObject(car).build(); id = "6"; car = new Car(); car.setId(id); car.setColor("red"); car.setPrice(20000); car.setMake("honda"); car.setSold("2014-11-05"); IndexQuery indexQuery6 = new IndexQueryBuilder().withId(car.getId()).withIndexName("car_idx") .withObject(car).build(); id = "7"; car = new Car(); car.setId(id); car.setColor("red"); car.setPrice(80000); car.setMake("bmw"); car.setSold("2014-01-01"); IndexQuery indexQuery7 = new IndexQueryBuilder().withId(car.getId()).withIndexName("car_idx") .withObject(car).build(); id = "8"; car = new Car(); car.setId(id); car.setColor("blue"); car.setPrice(25000); car.setMake("ford"); car.setSold("2014-02-12"); IndexQuery indexQuery8 = new IndexQueryBuilder().withId(car.getId()).withIndexName("car_idx") .withObject(car).build(); elasticsearchTemplate.bulkIndex(Arrays.asList(indexQuery2, indexQuery3, indexQuery4, indexQuery5, indexQuery6, indexQuery7, indexQuery8)); // alternative to index //userRepository.save(Arrays.asList(car)); elasticsearchTemplate.refresh(Car.class, true); // 1 honda red 10000 2014-10-28 // 2 honda red 20000 2014-11-05 // 3 ford green 30000 2014-05-18 // 4 toyota blue 15000 2014-07-02 // 5 toyota green 12000 2014-08-19 // 6 honda red 20000 2014-11-05 // 7 bmw red 80000 2014-01-01 // 8 ford blue 25000 2014-02-12 SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()) .withSearchType(SearchType.COUNT).withIndices("car_idx").withTypes("car_type") .addAggregation(AggregationBuilders.terms("colors").field("color") .subAggregation(AggregationBuilders.avg("avg_price").field("price"))) .build(); Aggregations aggregations = elasticsearchTemplate.query(searchQuery, new ResultsExtractor<Aggregations>() { @Override public Aggregations extract(SearchResponse response) { return response.getAggregations(); } }); assertThat(aggregations, is(notNullValue())); assertThat(aggregations.asMap().get("colors"), is(notNullValue())); Gson gson = new Gson(); for (Aggregation agg : aggregations.asList()) { // {"order":{"id":1,"key":"_count","asc":false,"comparator":{}},"requiredSize":10,"minDocCount":1, // "buckets":[{"termBytes":{"bytes":[114,101,100],"offset":0,"length":3},"bucketOrd":0,"docCount":3, // "aggregations":{"aggregations":[{"sum":50000.0,"count":3,"name":"avg_price"}]}},{"termBytes":{"bytes":[98,108,117,101],"offset":0,"length":4},"bucketOrd":0,"docCount":2, //blue // "aggregations":{"aggregations":[{"sum":40000.0,"count":2,"name":"avg_price"}]}},{"termBytes":{"bytes":[103,114,101,101,110],"offset":0,"length":5},"bucketOrd":0,"docCount":2, //green // "aggregations":{"aggregations":[{"sum":42000.0,"count":2,"name":"avg_price"}]}}],"name":"colors"} System.out.println("Aggregation json string:" + gson.toJson(agg)); } }
From source file:com.github.vanroy.springdata.jest.JestElasticsearchTemplateTests.java
@Test public void shouldIndexSampleEntityWithIndexAndTypeAtRuntime() { // given//from w w w .ja v a 2 s . c o m String documentId = randomNumeric(5); SampleEntity sampleEntity = SampleEntity.builder().id(documentId).message("some message") .version(System.currentTimeMillis()).build(); IndexQuery indexQuery = new IndexQueryBuilder().withId(documentId).withIndexName(INDEX_NAME) .withType(TYPE_NAME).withObject(sampleEntity).build(); elasticsearchTemplate.index(indexQuery); elasticsearchTemplate.refresh(INDEX_NAME); SearchQuery searchQuery = new NativeSearchQueryBuilder().withIndices(INDEX_NAME).withTypes(TYPE_NAME) .withQuery(matchAllQuery()).build(); // when Page<SampleEntity> sampleEntities = elasticsearchTemplate.queryForPage(searchQuery, SampleEntity.class); // then assertThat(sampleEntities, is(notNullValue())); assertThat(sampleEntities.getTotalElements(), greaterThanOrEqualTo(1L)); }
From source file:com.github.vanroy.springdata.jest.JestElasticsearchTemplateTests.java
@Test public void shouldIndexVersionnedEntity() { // given//from ww w . j av a 2s . c o m String documentId = randomNumeric(5); BasicEntity entity = new BasicEntity(documentId, "test"); IndexQuery indexQuery = new IndexQueryBuilder().withId(documentId).withIndexName(INDEX_NAME) .withType(TYPE_NAME).withVersion(entity.getVersion()).withObject(entity).build(); elasticsearchTemplate.index(indexQuery); elasticsearchTemplate.refresh(INDEX_NAME); SearchQuery searchQuery = new NativeSearchQueryBuilder().withIndices(INDEX_NAME).withTypes(TYPE_NAME) .withQuery(matchAllQuery()).build(); // when Page<BasicEntity> entities = elasticsearchTemplate.queryForPage(searchQuery, BasicEntity.class); // then assertThat(entities, is(notNullValue())); assertThat(entities.getTotalElements(), greaterThanOrEqualTo(1L)); assertThat(entities.getContent().get(0).getFirstName(), equalTo(entity.getFirstName())); assertThat(entities.getContent().get(0).getVersion(), equalTo(entity.getVersion())); }
From source file:com.github.vanroy.springdata.jest.JestElasticsearchTemplateTests.java
@Test public void shouldReturnCountForGivenCriteriaQueryWithGivenMultiIndices() { // given// w ww . ja v a2s.com cleanUpIndices(); String documentId1 = randomNumeric(5); SampleEntity sampleEntity1 = SampleEntity.builder().id(documentId1).message("some message") .version(System.currentTimeMillis()).build(); IndexQuery indexQuery1 = new IndexQueryBuilder().withId(sampleEntity1.getId()).withIndexName("test-index-1") .withObject(sampleEntity1).build(); String documentId2 = randomNumeric(5); SampleEntity sampleEntity2 = SampleEntity.builder().id(documentId2).message("some test message") .version(System.currentTimeMillis()).build(); IndexQuery indexQuery2 = new IndexQueryBuilder().withId(sampleEntity2.getId()).withIndexName("test-index-2") .withObject(sampleEntity2).build(); elasticsearchTemplate.bulkIndex(Arrays.asList(indexQuery1, indexQuery2)); elasticsearchTemplate.refresh("test-index-1"); elasticsearchTemplate.refresh("test-index-2"); CriteriaQuery criteriaQuery = new CriteriaQuery(new Criteria()); criteriaQuery.addIndices("test-index-1", "test-index-2"); // when long count = elasticsearchTemplate.count(criteriaQuery); // then assertThat(count, is(equalTo(2L))); }
From source file:com.github.vanroy.springdata.jest.JestElasticsearchTemplateTests.java
@Test public void shouldReturnCountForGivenSearchQueryWithGivenMultiIndices() { // given/*from ww w.j a va2 s .c o m*/ cleanUpIndices(); String documentId1 = randomNumeric(5); SampleEntity sampleEntity1 = SampleEntity.builder().id(documentId1).message("some message") .version(System.currentTimeMillis()).build(); IndexQuery indexQuery1 = new IndexQueryBuilder().withId(sampleEntity1.getId()).withIndexName("test-index-1") .withObject(sampleEntity1).build(); String documentId2 = randomNumeric(5); SampleEntity sampleEntity2 = SampleEntity.builder().id(documentId2).message("some test message") .version(System.currentTimeMillis()).build(); IndexQuery indexQuery2 = new IndexQueryBuilder().withId(sampleEntity2.getId()).withIndexName("test-index-2") .withObject(sampleEntity2).build(); elasticsearchTemplate.bulkIndex(Arrays.asList(indexQuery1, indexQuery2)); elasticsearchTemplate.refresh("test-index-1"); elasticsearchTemplate.refresh("test-index-2"); SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()) .withIndices("test-index-1", "test-index-2").build(); // when long count = elasticsearchTemplate.count(searchQuery); // then assertThat(count, is(equalTo(2L))); }
From source file:com.github.vanroy.springdata.jest.JestElasticsearchTemplateTests.java
@Test public void shouldReturnCountForGivenCriteriaQueryWithGivenIndexNameForSpecificIndex() { // given// www .ja v a 2s .co m cleanUpIndices(); String documentId1 = randomNumeric(5); SampleEntity sampleEntity1 = SampleEntity.builder().id(documentId1).message("some message") .version(System.currentTimeMillis()).build(); IndexQuery indexQuery1 = new IndexQueryBuilder().withId(sampleEntity1.getId()).withIndexName("test-index-1") .withObject(sampleEntity1).build(); String documentId2 = randomNumeric(5); SampleEntity sampleEntity2 = SampleEntity.builder().id(documentId2).message("some test message") .version(System.currentTimeMillis()).build(); IndexQuery indexQuery2 = new IndexQueryBuilder().withId(sampleEntity2.getId()).withIndexName("test-index-2") .withObject(sampleEntity2).build(); elasticsearchTemplate.bulkIndex(Arrays.asList(indexQuery1, indexQuery2)); elasticsearchTemplate.refresh("test-index-1"); elasticsearchTemplate.refresh("test-index-2"); CriteriaQuery criteriaQuery = new CriteriaQuery(new Criteria()); criteriaQuery.addIndices("test-index-1"); // when long count = elasticsearchTemplate.count(criteriaQuery); // then assertThat(count, is(equalTo(1L))); }
From source file:com.github.vanroy.springdata.jest.JestElasticsearchTemplateTests.java
@Test public void shouldReturnCountForGivenSearchQueryWithGivenIndexNameForSpecificIndex() { // given//from ww w . ja va 2s. c om cleanUpIndices(); String documentId1 = randomNumeric(5); SampleEntity sampleEntity1 = SampleEntity.builder().id(documentId1).message("some message") .version(System.currentTimeMillis()).build(); IndexQuery indexQuery1 = new IndexQueryBuilder().withId(sampleEntity1.getId()).withIndexName("test-index-1") .withObject(sampleEntity1).build(); String documentId2 = randomNumeric(5); SampleEntity sampleEntity2 = SampleEntity.builder().id(documentId2).message("some test message") .version(System.currentTimeMillis()).build(); IndexQuery indexQuery2 = new IndexQueryBuilder().withId(sampleEntity2.getId()).withIndexName("test-index-2") .withObject(sampleEntity2).build(); elasticsearchTemplate.bulkIndex(Arrays.asList(indexQuery1, indexQuery2)); elasticsearchTemplate.refresh("test-index-1"); elasticsearchTemplate.refresh("test-index-2"); SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()) .withIndices("test-index-1").build(); // when long count = elasticsearchTemplate.count(searchQuery); // then assertThat(count, is(equalTo(1L))); }