List of usage examples for org.springframework.data.elasticsearch.core.query GetQuery setId
public void setId(String id)
From source file:com.company.project.data.elasticsearch.service.UserESServiceTest.java
public void testRepositoryQueries() { System.out.println("testRepository"); //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); String id = UUID.randomUUID().toString(); User user = new User(); user.setId(id);//from w w w .jav a2 s . co m user.setName("user-" + id); user.setRole(1l); user.setPath("1.0"); Map<Integer, Collection<String>> userFilter = new HashMap<>(); userFilter.put(1, Arrays.asList("filter1", "filter2")); userFilter.put(2, Arrays.asList("filter11", "filter12")); user.setFilter(userFilter); userRepository.save(user); boolean exists = userRepository.exists(user.getId()); assertTrue(exists); List<User> users = new ArrayList<>(); id = UUID.randomUUID().toString(); user = new User(); user.setId(id); user.setName("user-" + id); user.setRole(2l); user.setPath("1.1.0"); userFilter = new HashMap<>(); userFilter.put(1, Arrays.asList("filter1", "filter3")); userFilter.put(2, Arrays.asList("filter11", "filter13")); user.setFilter(userFilter); users.add(user); //userRepository.save(user); id = UUID.randomUUID().toString(); user = new User(); user.setId(id); user.setName("user-" + id); user.setRole(3l); user.setPath("1.1.1.0"); userFilter = new HashMap<>(); userFilter.put(1, Arrays.asList("filter1", "filter4")); userFilter.put(2, Arrays.asList("filter11", "filter14")); user.setFilter(userFilter); users.add(user); //userRepository.save(user); userRepository.save(users); //bulk save exists = userRepository.exists(user.getId()); assertTrue(exists); elasticsearchTemplate.refresh(User.class, true); GetQuery getQuery = new GetQuery(); getQuery.setId(id); User userIndexed = elasticsearchTemplate.queryForObject(getQuery, User.class); assertEquals("user-" + id, "" + userIndexed.getName()); assertEquals(id, "" + userIndexed.getId()); assertEquals("3", "" + userIndexed.getRole()); String facetName = "testName"; SearchQuery searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()) .withFacet(new TermFacetRequestBuilder(facetName).fields("role").descCount().build()).build(); // when FacetedPage<User> result = elasticsearchTemplate.queryForPage(searchQuery, User.class); assertEquals(3, result.getNumberOfElements()); TermResult facet = (TermResult) result.getFacet(facetName); assertEquals(3, facet.getTerms().size()); for (Term term : facet.getTerms()) { assertTrue("1".equals(term.getTerm()) || "2".equals(term.getTerm()) || "3".equals(term.getTerm())); System.out.println("Facet term : " + term.getTerm()); //System.out.println("Facet count : " + term.getCount()); //result //Facet term : 3 //Facet term : 2 //Facet term : 1 } // query list all searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()) //.withFacet(new TermFacetRequestBuilder(facetName).fields("role").descCount().build()) .build(); List<User> userList = elasticsearchTemplate.queryForList(searchQuery, User.class); assertEquals(3, userList.size()); for (User u : userList) { System.out.println("User ID: " + u.getId()); System.out.println("User Name: " + u.getName()); } // query list all with pagination searchQuery = new NativeSearchQueryBuilder().withQuery(matchAllQuery()).withPageable(new PageRequest(0, 10)) //.withIndices("xuseridx") //.withTypes("xusertype") //.withFacet(new TermFacetRequestBuilder(facetName).fields("role").descCount().build()) .build(); Page<User> pagedUsers = elasticsearchTemplate.queryForPage(searchQuery, User.class); assertEquals(3, pagedUsers.getTotalElements()); assertEquals(1, pagedUsers.getTotalPages()); for (User u : pagedUsers.getContent()) { System.out.println("User ID: " + u.getId()); System.out.println("User Name: " + u.getName()); } // query filter with key "1" contains value "filter3" and key "2" contains value "filter13" QueryBuilder builder = nestedQuery("filter", boolQuery().must(termQuery("1", "filter3")).must(termQuery("2", "filter13"))); searchQuery = new NativeSearchQueryBuilder().withQuery(builder).build(); userList = elasticsearchTemplate.queryForList(searchQuery, User.class); assertEquals(1, userList.size()); for (User u : userList) { System.out.println("User ID: " + u.getId()); System.out.println("User Name: " + u.getName()); } // query all with filter path prefix "1.1" builder = boolQuery().must(prefixQuery("path", "1.1")); searchQuery = new NativeSearchQueryBuilder().withQuery(builder).build(); userList = elasticsearchTemplate.queryForList(searchQuery, User.class); assertEquals(2, userList.size()); for (User u : userList) { System.out.println("User ID: " + u.getId()); System.out.println("User Name: " + u.getName()); } builder = QueryBuilders.multiMatchQuery("user", // term to search "path", "name" // field to search ); searchQuery = new NativeSearchQueryBuilder().withQuery(builder).build(); userList = elasticsearchTemplate.queryForList(searchQuery, User.class); assertEquals(3, userList.size()); for (User u : userList) { System.out.println("User ID: " + u.getId()); System.out.println("User Name: " + u.getName()); } // ref: https://github.com/elasticsearch/elasticsearch/blob/master/docs/java-api/query-dsl-queries.asciidoc#boolean-query // http://www.elasticsearch.org/guide/en/elasticsearch/client/java-api/current/query-dsl-queries.html // Boolean Query builder = boolQuery().must(termQuery("content", "test1")) // field name, keyword .must(termQuery("content", "test4")) // field name, keyword .mustNot(termQuery("content", "test2")) // field name, keyword .should(termQuery("content", "test3")); // field name, keyword // Boosting Query builder = QueryBuilders.boostingQuery().positive(termQuery("name", "kimchy")) // query that will promote documents .negative(termQuery("name", "dadoonet")) // query that will demote documents .negativeBoost(0.2f); // negative boost //IDs Query builder = QueryBuilders.idsQuery().ids("1", "2"); // Constant Score Query builder = QueryBuilders.constantScoreQuery(termFilter("name", "kimchy") // you can use a filter ).boost(2.0f); // filter score builder = QueryBuilders.constantScoreQuery(termQuery("name", "kimchy") // you can use a query ).boost(2.0f); // Prefix Query builder = QueryBuilders.prefixQuery("brand", // field "heine" // term ); // QueryString Query builder = QueryBuilders.queryString("+kimchy -elasticsearch"); // Range Query builder = QueryBuilders.rangeQuery("price") // field .from(5) // from .to(10) // to .includeLower(true) // include lower value means that from is gt when false or gte when true .includeUpper(false); // include upper value means that to is lt when false or lte when true builder = QueryBuilders.disMaxQuery() // add your queries .add(termQuery("name", "kimchy")) // add your queries .add(termQuery("name", "elasticsearch")) // .boost(1.2f) // boost factor .tieBreaker(0.7f); // tie breaker // Fuzzy Like This (Field) Query (flt and flt_field) builder = QueryBuilders.fuzzyLikeThisQuery("name.first", "name.last") // fields .likeText("text like this one") // text .maxQueryTerms(12); // max num of Terms in generated queries //FuzzyQuery builder = QueryBuilders.fuzzyQuery("name", // field "kimzhy" // term ); }
From source file:com.github.vanroy.springdata.jest.JestElasticsearchTemplateTests.java
@Test public void shouldReturnNullForInexistentId() { // given/*from w w w . j a v a 2s .c o m*/ // when GetQuery getQuery = new GetQuery(); getQuery.setId("1"); SampleEntity sampleEntity1 = elasticsearchTemplate.queryForObject(getQuery, SampleEntity.class); // then assertNull("entity must be null....", sampleEntity1); }
From source file:com.github.vanroy.springdata.jest.JestElasticsearchTemplateTests.java
@Test public void shouldReturnObjectForGivenId() { // given//ww w . ja va 2s .co m String documentId = randomNumeric(5); SampleEntity sampleEntity = SampleEntity.builder().id(documentId).message("some message") .version(System.currentTimeMillis()).build(); IndexQuery indexQuery = getIndexQuery(sampleEntity); elasticsearchTemplate.index(indexQuery); // when GetQuery getQuery = new GetQuery(); getQuery.setId(documentId); SampleEntity sampleEntity1 = elasticsearchTemplate.queryForObject(getQuery, SampleEntity.class); // then assertNotNull("entity can't be null....", sampleEntity1); assertEquals(sampleEntity, sampleEntity1); }
From source file:com.github.vanroy.springdata.jest.JestElasticsearchTemplateTests.java
@Test public void shouldDoUpsertIfDocumentDoesNotExist() { //given//w w w .j a v a 2s.c om String documentId = randomNumeric(5); String message = "test message"; IndexRequest indexRequest = new IndexRequest(); indexRequest.source("message", message); UpdateQuery updateQuery = new UpdateQueryBuilder().withId(documentId).withDoUpsert(true) .withClass(SampleEntity.class).withIndexRequest(indexRequest).build(); //when elasticsearchTemplate.update(updateQuery); //then GetQuery getQuery = new GetQuery(); getQuery.setId(documentId); SampleEntity indexedEntity = elasticsearchTemplate.queryForObject(getQuery, SampleEntity.class); assertThat(indexedEntity.getMessage(), is(message)); }
From source file:com.github.vanroy.springdata.jest.JestElasticsearchTemplateTests.java
@Test public void shouldIndexNotDocumentEntity() { // given/* www . j a va2 s . com*/ BasicEntity entity = new BasicEntity(randomNumeric(1), "aFirstName"); IndexQuery indexQuery = new IndexQuery(); indexQuery.setObject(entity); indexQuery.setIndexName(INDEX_NAME); indexQuery.setType(TYPE_NAME); // when String id = elasticsearchTemplate.index(indexQuery); elasticsearchTemplate.refresh(SampleEntity.class); GetQuery query = new GetQuery(); query.setId(id); AnnotatedBasicEntity indexedEntity = elasticsearchTemplate.queryForObject(query, AnnotatedBasicEntity.class); assertThat(indexedEntity, is(notNullValue())); assertThat(indexedEntity.getId(), equalTo(id)); assertThat(indexedEntity.getFirstName(), equalTo(entity.getFirstName())); }
From source file:com.github.vanroy.springdata.jest.JestElasticsearchTemplateTests.java
@Test public void shouldDoIndexWithoutId() { // given/*from w w w .j a v a 2s. c o m*/ // document SampleEntity sampleEntity = new SampleEntity(); sampleEntity.setMessage("some message"); sampleEntity.setVersion(System.currentTimeMillis()); IndexQuery indexQuery = new IndexQuery(); indexQuery.setObject(sampleEntity); // when String documentId = elasticsearchTemplate.index(indexQuery); // then assertThat(sampleEntity.getId(), is(equalTo(documentId))); GetQuery getQuery = new GetQuery(); getQuery.setId(documentId); SampleEntity result = elasticsearchTemplate.queryForObject(getQuery, SampleEntity.class); assertThat(result.getId(), is(equalTo(documentId))); }
From source file:com.github.vanroy.springdata.jest.JestElasticsearchTemplateTests.java
@Test public void shouldDoPartialUpdateForExistingDocument() { //given/*from w w w. ja va2 s . co m*/ String documentId = randomNumeric(5); String messageBeforeUpdate = "some test message"; String messageAfterUpdate = "test message"; SampleEntity sampleEntity = SampleEntity.builder().id(documentId).message(messageBeforeUpdate) .version(System.currentTimeMillis()).build(); IndexQuery indexQuery = getIndexQuery(sampleEntity); elasticsearchTemplate.index(indexQuery); elasticsearchTemplate.refresh(SampleEntity.class); IndexRequest indexRequest = new IndexRequest(); indexRequest.source("message", messageAfterUpdate); UpdateQuery updateQuery = new UpdateQueryBuilder().withId(documentId).withClass(SampleEntity.class) .withIndexRequest(indexRequest).build(); // when elasticsearchTemplate.update(updateQuery); //then GetQuery getQuery = new GetQuery(); getQuery.setId(documentId); SampleEntity indexedEntity = elasticsearchTemplate.queryForObject(getQuery, SampleEntity.class); assertThat(indexedEntity.getMessage(), is(messageAfterUpdate)); }
From source file:com.github.vanroy.springdata.jest.JestElasticsearchTemplateTests.java
@Test public void shouldDoBulkUpdate() { //given//from w w w . j a v a2s. co m String documentId = randomNumeric(5); String messageBeforeUpdate = "some test message"; String messageAfterUpdate = "test message"; SampleEntity sampleEntity = SampleEntity.builder().id(documentId).message(messageBeforeUpdate) .version(System.currentTimeMillis()).build(); IndexQuery indexQuery = getIndexQuery(sampleEntity); elasticsearchTemplate.index(indexQuery); elasticsearchTemplate.refresh(SampleEntity.class); IndexRequest indexRequest = new IndexRequest(); indexRequest.source("message", messageAfterUpdate); UpdateQuery updateQuery = new UpdateQueryBuilder().withId(documentId).withClass(SampleEntity.class) .withIndexRequest(indexRequest).build(); List<UpdateQuery> queries = new ArrayList<>(); queries.add(updateQuery); // when elasticsearchTemplate.bulkUpdate(queries); //then GetQuery getQuery = new GetQuery(); getQuery.setId(documentId); SampleEntity indexedEntity = elasticsearchTemplate.queryForObject(getQuery, SampleEntity.class); assertThat(indexedEntity.getMessage(), is(messageAfterUpdate)); }
From source file:org.springframework.data.elasticsearch.core.ElasticsearchTemplateTests.java
@Test public void shouldReturnObjectForGivenId() { // given//from ww w .j a v a 2 s. com 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); elasticsearchTemplate.index(indexQuery); // when GetQuery getQuery = new GetQuery(); getQuery.setId(documentId); SampleEntity sampleEntity1 = elasticsearchTemplate.queryForObject(getQuery, SampleEntity.class); // then assertNotNull("not null....", sampleEntity1); assertEquals(sampleEntity, sampleEntity1); }
From source file:org.springframework.data.elasticsearch.core.ElasticsearchTemplateTests.java
@Test public void shouldDoPartialUpdateForExistingDocument() { //given/*from ww w.j av a 2s . co m*/ String documentId = randomNumeric(5); String messageBeforeUpdate = "some test message"; String messageAfterUpdate = "test message"; SampleEntity sampleEntity = new SampleEntity(); sampleEntity.setId(documentId); sampleEntity.setMessage(messageBeforeUpdate); sampleEntity.setVersion(System.currentTimeMillis()); IndexQuery indexQuery = new IndexQuery(); indexQuery.setId(documentId); indexQuery.setObject(sampleEntity); elasticsearchTemplate.index(indexQuery); elasticsearchTemplate.refresh(SampleEntity.class, true); IndexRequest indexRequest = new IndexRequest(); indexRequest.source("message", messageAfterUpdate); UpdateQuery updateQuery = new UpdateQueryBuilder().withId(documentId).withClass(SampleEntity.class) .withIndexRequest(indexRequest).build(); // when elasticsearchTemplate.update(updateQuery); //then GetQuery getQuery = new GetQuery(); getQuery.setId(documentId); SampleEntity indexedEntity = elasticsearchTemplate.queryForObject(getQuery, SampleEntity.class); assertThat(indexedEntity.getMessage(), is(messageAfterUpdate)); }