Search in sources :

Example 41 with Query

use of org.springframework.data.elasticsearch.core.query.Query in project spring-data-elasticsearch by spring-projects.

the class NestedObjectTests method shouldIndexInitialLevelNestedObject.

@Test
public void shouldIndexInitialLevelNestedObject() {
    List<Car> cars = new ArrayList<>();
    Car saturn = new Car();
    saturn.setName("Saturn");
    saturn.setModel("SL");
    Car subaru = new Car();
    subaru.setName("Subaru");
    subaru.setModel("Imprezza");
    Car ford = new Car();
    ford.setName("Ford");
    ford.setModel("Focus");
    cars.add(saturn);
    cars.add(subaru);
    cars.add(ford);
    Person foo = new Person();
    foo.setName("Foo");
    foo.setId("1");
    foo.setCar(cars);
    Car car = new Car();
    car.setName("Saturn");
    car.setModel("Imprezza");
    Person bar = new Person();
    bar.setId("2");
    bar.setName("Bar");
    bar.setCar(Collections.singletonList(car));
    List<IndexQuery> indexQueries = new ArrayList<>();
    IndexQuery indexQuery1 = new IndexQuery();
    indexQuery1.setId(foo.getId());
    indexQuery1.setObject(foo);
    IndexQuery indexQuery2 = new IndexQuery();
    indexQuery2.setId(bar.getId());
    indexQuery2.setObject(bar);
    indexQueries.add(indexQuery1);
    indexQueries.add(indexQuery2);
    IndexCoordinates index = IndexCoordinates.of("test-index-person");
    operations.bulkIndex(indexQueries, index);
    operations.indexOps(Person.class).refresh();
    QueryBuilder builder = nestedQuery("car", boolQuery().must(termQuery("car.name", "saturn")).must(termQuery("car.model", "imprezza")), ScoreMode.None);
    Query searchQuery = new NativeSearchQueryBuilder().withQuery(builder).build();
    SearchHits<Person> persons = operations.search(searchQuery, Person.class, index);
    assertThat(persons).hasSize(1);
}
Also used : IndexQuery(org.springframework.data.elasticsearch.core.query.IndexQuery) Query(org.springframework.data.elasticsearch.core.query.Query) IndexQuery(org.springframework.data.elasticsearch.core.query.IndexQuery) NativeSearchQuery(org.springframework.data.elasticsearch.core.query.NativeSearchQuery) ArrayList(java.util.ArrayList) QueryBuilder(org.elasticsearch.index.query.QueryBuilder) NativeSearchQueryBuilder(org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder) BoolQueryBuilder(org.elasticsearch.index.query.BoolQueryBuilder) NativeSearchQueryBuilder(org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder) IndexCoordinates(org.springframework.data.elasticsearch.core.mapping.IndexCoordinates) Test(org.junit.jupiter.api.Test) SpringIntegrationTest(org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest)

Example 42 with Query

use of org.springframework.data.elasticsearch.core.query.Query in project spring-data-elasticsearch by spring-projects.

the class SimpleElasticsearchRepository method findAllById.

@Override
public Iterable<T> findAllById(Iterable<ID> ids) {
    Assert.notNull(ids, "ids can't be null.");
    List<T> result = new ArrayList<>();
    Query idQuery = getIdQuery(ids);
    if (isEmpty(idQuery.getIds())) {
        return result;
    }
    List<MultiGetItem<T>> multiGetItems = execute(operations -> operations.multiGet(idQuery, entityClass, getIndexCoordinates()));
    if (multiGetItems != null) {
        multiGetItems.forEach(multiGetItem -> {
            if (multiGetItem.hasItem()) {
                result.add(multiGetItem.getItem());
            }
        });
    }
    return result;
}
Also used : MoreLikeThisQuery(org.springframework.data.elasticsearch.core.query.MoreLikeThisQuery) Query(org.springframework.data.elasticsearch.core.query.Query) NativeSearchQuery(org.springframework.data.elasticsearch.core.query.NativeSearchQuery) MultiGetItem(org.springframework.data.elasticsearch.core.MultiGetItem) ArrayList(java.util.ArrayList)

Example 43 with Query

use of org.springframework.data.elasticsearch.core.query.Query in project tbbtalentv2 by talentbeyondboundaries.

the class CandidateEsRepositoryTest method givenPersistedArticles_whenUseRegexQuery_thenRightArticlesFound.

// @AfterEach
// public void after() {
// candidateEsRepository.deleteAll();
// }
// @Transactional
// @Test
public void givenPersistedArticles_whenUseRegexQuery_thenRightArticlesFound() {
    final Query searchQuery = new NativeSearchQueryBuilder().withQuery(fuzzyQuery("candidateAttachments", "Condell")).build();
    final SearchHits<CandidateEs> cands = elasticsearchTemplate.search(searchQuery, CandidateEs.class, IndexCoordinates.of("jobs2"));
    assertEquals(1, cands.getTotalHits());
}
Also used : QueryBuilders.fuzzyQuery(org.elasticsearch.index.query.QueryBuilders.fuzzyQuery) Query(org.springframework.data.elasticsearch.core.query.Query) CandidateEs(org.tbbtalent.server.model.es.CandidateEs) NativeSearchQueryBuilder(org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder)

Example 44 with Query

use of org.springframework.data.elasticsearch.core.query.Query in project java-spring-boot-2021 by hocyadav.

the class ElasticSearchSpringBootApplication method createClientObject.

/* working */
public void createClientObject() throws IOException {
    System.err.println("ElasticSearchSpringBootApplication.createClientObject");
    /* create clinet object to call ES database : working - check http://localhost:9200/people/_search */
    Query searchQuery = new NativeSearchQueryBuilder().withFilter(regexpQuery("title", ".*data.*")).build();
    ClientConfiguration clientConfiguration = ClientConfiguration.builder().connectedTo("localhost:9200").build();
    client = RestClients.create(clientConfiguration).rest();
    /* create new index if not present & add 1 data : working - check ES url for new data */
    String jsonObject = "{\"age\":20,\"dateOfBirth\":1471466076564,\"fullName\":\"John Doe\"}";
    IndexRequest request = new IndexRequest("people");
    request.source(jsonObject, XContentType.JSON);
    IndexResponse response = client.index(request, RequestOptions.DEFAULT);
    String index = response.getIndex();
    long version = response.getVersion();
    System.out.println("index = " + index);
    System.out.println("version = " + version);
    System.out.println("response = " + response.getResult().toString());
}
Also used : Query(org.springframework.data.elasticsearch.core.query.Query) QueryBuilders.regexpQuery(org.elasticsearch.index.query.QueryBuilders.regexpQuery) IndexResponse(org.elasticsearch.action.index.IndexResponse) NativeSearchQueryBuilder(org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder) IndexRequest(org.elasticsearch.action.index.IndexRequest) ClientConfiguration(org.springframework.data.elasticsearch.client.ClientConfiguration)

Aggregations

Query (org.springframework.data.elasticsearch.core.query.Query)44 Test (org.junit.jupiter.api.Test)22 SpringIntegrationTest (org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest)17 NativeSearchQueryBuilder (org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder)16 IndexCoordinates (org.springframework.data.elasticsearch.core.mapping.IndexCoordinates)15 IndexQuery (org.springframework.data.elasticsearch.core.query.IndexQuery)15 DisplayName (org.junit.jupiter.api.DisplayName)14 ArrayList (java.util.ArrayList)13 List (java.util.List)10 CriteriaQuery (org.springframework.data.elasticsearch.core.query.CriteriaQuery)10 Collectors (java.util.stream.Collectors)9 MoreLikeThisQuery (org.springframework.data.elasticsearch.core.query.MoreLikeThisQuery)9 Nullable (org.springframework.lang.Nullable)9 UpdateQuery (org.springframework.data.elasticsearch.core.query.UpdateQuery)8 QueryBuilders (org.elasticsearch.index.query.QueryBuilders)7 HashMap (java.util.HashMap)6 Map (java.util.Map)6 MultiSearchRequest (org.elasticsearch.action.search.MultiSearchRequest)6 Log (org.apache.commons.logging.Log)5 LogFactory (org.apache.commons.logging.LogFactory)5