Search in sources :

Example 16 with Query

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

the class SearchAsYouTypeTests method shouldReturnCorrectResultsForNotMatchQuery.

// DATAES-773
@Test
void shouldReturnCorrectResultsForNotMatchQuery() {
    // given
    loadEntities();
    // when
    Query query = new NativeSearchQuery(// 
    QueryBuilders.multiMatchQuery(// 
    "n mat", "suggest", "suggest._2gram", "suggest._3gram", "suggest._4gram").type(MultiMatchQueryBuilder.Type.BOOL_PREFIX));
    IndexCoordinates index = IndexCoordinates.of("test-index-core-search-as-you-type");
    List<SearchAsYouTypeEntity> result = // 
    operations.search(query, SearchAsYouTypeEntity.class, index).getSearchHits().stream().map(// 
    SearchHit::getContent).collect(Collectors.toList());
    // then
    assertThat(result.get(0).getId()).isEqualTo("4");
}
Also used : Query(org.springframework.data.elasticsearch.core.query.Query) IndexQuery(org.springframework.data.elasticsearch.core.query.IndexQuery) NativeSearchQuery(org.springframework.data.elasticsearch.core.query.NativeSearchQuery) NativeSearchQuery(org.springframework.data.elasticsearch.core.query.NativeSearchQuery) IndexCoordinates(org.springframework.data.elasticsearch.core.mapping.IndexCoordinates) Test(org.junit.jupiter.api.Test) SpringIntegrationTest(org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest)

Example 17 with Query

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

the class SourceFilterIntegrationTests method shouldOnlyReturnIncludedFieldsFromSourceFilterOnSearch.

// #1659
@Test
@DisplayName("should only return included fields from SourceFilter on search")
void shouldOnlyReturnIncludedFieldsFromSourceFilterOnSearch() {
    Query query = Query.findAll();
    query.addSourceFilter(new SourceFilter() {

        @Override
        public String[] getIncludes() {
            return new String[] { "field2" };
        }

        @Override
        public String[] getExcludes() {
            return new String[] {};
        }
    });
    SearchHits<Entity> entities = operations.search(query, Entity.class);
    assertThat(entities).hasSize(1);
    Entity entity = entities.getSearchHit(0).getContent();
    assertThat(entity.getField1()).isNull();
    assertThat(entity.getField2()).isNotNull();
    assertThat(entity.getField3()).isNull();
}
Also used : SourceFilter(org.springframework.data.elasticsearch.core.query.SourceFilter) Query(org.springframework.data.elasticsearch.core.query.Query) Test(org.junit.jupiter.api.Test) SpringIntegrationTest(org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest) DisplayName(org.junit.jupiter.api.DisplayName)

Example 18 with Query

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

the class SourceFilterIntegrationTests method shouldNotReturnExcludedFieldsFromSourceFilterOnMultiGet.

// #1659, #1678
@Test
@DisplayName("should not return excluded fields from SourceFilter on multiget")
void shouldNotReturnExcludedFieldsFromSourceFilterOnMultiGet() {
    Query query = Query.multiGetQuery(Collections.singleton("42"));
    query.addSourceFilter(new SourceFilter() {

        @Override
        public String[] getIncludes() {
            return new String[] {};
        }

        @Override
        public String[] getExcludes() {
            return new String[] { "field2" };
        }
    });
    List<MultiGetItem<Entity>> entities = operations.multiGet(query, Entity.class);
    assertThat(entities).hasSize(1);
    Entity entity = entities.get(0).getItem();
    assertThat(entity.getField1()).isNotNull();
    assertThat(entity.getField2()).isNull();
    assertThat(entity.getField3()).isNotNull();
}
Also used : SourceFilter(org.springframework.data.elasticsearch.core.query.SourceFilter) Query(org.springframework.data.elasticsearch.core.query.Query) Test(org.junit.jupiter.api.Test) SpringIntegrationTest(org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest) DisplayName(org.junit.jupiter.api.DisplayName)

Example 19 with Query

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

the class SourceFilterIntegrationTests method shouldOnlyReturnRequestedFieldsOnGMultiGet.

// #1659, #1678
@Test
@DisplayName("should only return requested fields on multiget")
void shouldOnlyReturnRequestedFieldsOnGMultiGet() {
    // multiget has no fields, need sourcefilter here
    Query query = Query.multiGetQuery(Collections.singleton("42"));
    // 
    query.addSourceFilter(new FetchSourceFilterBuilder().withIncludes("field2").build());
    List<MultiGetItem<Entity>> entities = operations.multiGet(query, Entity.class);
    assertThat(entities).hasSize(1);
    Entity entity = entities.get(0).getItem();
    assertThat(entity.getField1()).isNull();
    assertThat(entity.getField2()).isEqualTo("two");
    assertThat(entity.getField3()).isNull();
}
Also used : Query(org.springframework.data.elasticsearch.core.query.Query) FetchSourceFilterBuilder(org.springframework.data.elasticsearch.core.query.FetchSourceFilterBuilder) Test(org.junit.jupiter.api.Test) SpringIntegrationTest(org.springframework.data.elasticsearch.junit.jupiter.SpringIntegrationTest) DisplayName(org.junit.jupiter.api.DisplayName)

Example 20 with Query

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

the class MappingElasticsearchConverterUnitTests method shouldNotTryToCallPropertyConverterOnUpdatingCriteriaExists.

// #2080
@Test
@DisplayName("should not try to call property converter on updating criteria exists")
void shouldNotTryToCallPropertyConverterOnUpdatingCriteriaExists() {
    // don't care if the query makes no sense, we just add all criteria without values
    Query query = new CriteriaQuery(Criteria.where("fieldWithClassBasedConverter").exists().empty().notEmpty());
    mappingElasticsearchConverter.updateQuery(query, EntityWithCustomValueConverters.class);
}
Also used : CriteriaQuery(org.springframework.data.elasticsearch.core.query.CriteriaQuery) Query(org.springframework.data.elasticsearch.core.query.Query) CriteriaQuery(org.springframework.data.elasticsearch.core.query.CriteriaQuery) Test(org.junit.jupiter.api.Test) DisplayName(org.junit.jupiter.api.DisplayName)

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