Package io.jmix.search.searching
Class AbstractSearchQueryConfigurer<RB,QB,OB>
java.lang.Object
io.jmix.search.searching.AbstractSearchQueryConfigurer<RB,QB,OB>
- Type Parameters:
RB- platform-specific SearchRequestBuilder typeQB- platform-specific QueryBuilder typeOB- platform-specific ObjectBuilder type
- All Implemented Interfaces:
SearchQueryConfigurer<RB,QB, OB>
- Direct Known Subclasses:
ElasticSearchQueryConfigurer,OpenSearchQueryConfigurer
public abstract class AbstractSearchQueryConfigurer<RB,QB,OB>
extends Object
implements SearchQueryConfigurer<RB,QB,OB>
Implements common logic for all platform-specific implementations.
Contains "out of the box" SubfieldsProvider-s for the typical cases.
-
Nested Class Summary
Nested classes/interfaces inherited from interface io.jmix.search.searching.SearchQueryConfigurer
SearchQueryConfigurer.BusinessQueryConfigurer<QB,OB> -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final VirtualSubfieldsProviderprotected final SearchRequestScopeProviderstatic final VirtualSubfieldsProvider -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractSearchQueryConfigurer(SearchRequestScopeProvider searchRequestScopeProvider) -
Method Summary
Modifier and TypeMethodDescriptionvoidconfigureRequest(SearchRequestContext<RB> requestContext, SearchQueryConfigurer.BusinessQueryConfigurer<QB, OB> businessQueryConfigurer) Configures a search request using the provided request context and query configuration logic.voidconfigureRequest(SearchRequestContext<RB> requestContext, VirtualSubfieldsProvider virtualSubfieldsProvider, SearchQueryConfigurer.BusinessQueryConfigurer<QB, OB> businessQueryConfigurer) Configures request for the data querying from the search server.protected OBcreateQuery(SearchQueryConfigurer.BusinessQueryConfigurer<QB, OB> businessQueryConfigurer, List<IndexSearchRequestScope> indexSearchRequestScopes) Creates a query object based on the provided query configuration and the given index search request scopes.protected abstract OBcreateQueryForMultipleIndexes(SearchQueryConfigurer.BusinessQueryConfigurer<QB, OB> businessQueryConfigurer, List<IndexSearchRequestScope> indexSearchRequestScopes) Creates a query object for multiple indexes based on the provided query configuration and the list of index search request scopes.protected abstract OBcreateQueryForSingleIndex(SearchQueryConfigurer.BusinessQueryConfigurer<QB, OB> businessQueryConfigurer, IndexSearchRequestScope indexSearchRequestScope) Creates a query object for a single index based on the provided query configuration and the given index search request scope.protected abstract voidsetQueryToRequestBuilder(SearchRequestContext<RB> requestContext, SearchQueryConfigurer.BusinessQueryConfigurer<QB, OB> businessQueryConfigurer, List<IndexSearchRequestScope> indexSearchRequestScopes) Configures the search query in the provided request builder by applying business-specific configurations and setting up the query parameters within the specified search request scopes.
-
Field Details
-
NO_VIRTUAL_SUBFIELDS
-
WITH_PREFIX_VIRTUAL_SUBFIELDS
-
searchRequestScopeProvider
-
-
Constructor Details
-
AbstractSearchQueryConfigurer
-
-
Method Details
-
configureRequest
public void configureRequest(SearchRequestContext<RB> requestContext, SearchQueryConfigurer.BusinessQueryConfigurer<QB, OB> businessQueryConfigurer) Description copied from interface:SearchQueryConfigurerConfigures a search request using the provided request context and query configuration logic.- Specified by:
configureRequestin interfaceSearchQueryConfigurer<RB,QB, OB> - Parameters:
requestContext- the context containing request building information, including the request builder and processing state managementbusinessQueryConfigurer- an interface for building and applying business-specific query configurations to a single index
-
configureRequest
public void configureRequest(SearchRequestContext<RB> requestContext, VirtualSubfieldsProvider virtualSubfieldsProvider, SearchQueryConfigurer.BusinessQueryConfigurer<QB, OB> businessQueryConfigurer) Description copied from interface:SearchQueryConfigurerConfigures request for the data querying from the search server. Provides an ability to add subfields to the query.- Specified by:
configureRequestin interfaceSearchQueryConfigurer<RB,QB, OB> - Parameters:
requestContext- request context for the request building.virtualSubfieldsProvider- provider that provides additional subfields by theVirtualSubfieldsProvider.FieldInfobusinessQueryConfigurer- an interface for building and applying business-specific query configurations to a single index
-
setQueryToRequestBuilder
protected abstract void setQueryToRequestBuilder(SearchRequestContext<RB> requestContext, SearchQueryConfigurer.BusinessQueryConfigurer<QB, OB> businessQueryConfigurer, List<IndexSearchRequestScope> indexSearchRequestScopes) Configures the search query in the provided request builder by applying business-specific configurations and setting up the query parameters within the specified search request scopes.- Parameters:
requestContext- context of the search request, providing the request builder and related informationbusinessQueryConfigurer- business-specific query configuration logic to apply to the query builderindexSearchRequestScopes- list of search request scopes that define the boundaries of the search query
-
createQuery
protected OB createQuery(SearchQueryConfigurer.BusinessQueryConfigurer<QB, OB> businessQueryConfigurer, List<IndexSearchRequestScope> indexSearchRequestScopes) Creates a query object based on the provided query configuration and the given index search request scopes.- Parameters:
businessQueryConfigurer- business-specific query configuration logic to apply to the query builderindexSearchRequestScopes- list of index search request scopes defining the boundaries of the query- Returns:
- configured query object for single or multiple index search request scopes
-
createQueryForSingleIndex
protected abstract OB createQueryForSingleIndex(SearchQueryConfigurer.BusinessQueryConfigurer<QB, OB> businessQueryConfigurer, IndexSearchRequestScope indexSearchRequestScope) Creates a query object for a single index based on the provided query configuration and the given index search request scope.- Parameters:
businessQueryConfigurer- the business-specific query configuration logic to apply to the query builderindexSearchRequestScope- the index search request scope defining the boundaries of the query- Returns:
- configured query object for the specified single index search request scope
-
createQueryForMultipleIndexes
protected abstract OB createQueryForMultipleIndexes(SearchQueryConfigurer.BusinessQueryConfigurer<QB, OB> businessQueryConfigurer, List<IndexSearchRequestScope> indexSearchRequestScopes) Creates a query object for multiple indexes based on the provided query configuration and the list of index search request scopes.- Parameters:
businessQueryConfigurer- the business-specific query configuration logic to apply to the query builderindexSearchRequestScopes- the list of index search request scopes defining the boundaries of the query- Returns:
- configured query object for the specified multiple index search request scopes
-