Class DefaultSearchService<Q,R>
- java.lang.Object
-
- com.broadleafcommerce.search.core.service.DefaultSearchService<Q,R>
-
- Type Parameters:
Q- The query object to send to the search engineR- The query response received from the search engine
- All Implemented Interfaces:
SearchService<com.broadleafcommerce.search.api.domain.SearchResponse>
public class DefaultSearchService<Q,R> extends Object implements SearchService<com.broadleafcommerce.search.api.domain.SearchResponse>
Default searching implementation, including checking for redirects.
-
-
Constructor Summary
Constructors Constructor Description DefaultSearchService(QueryBuilder<Q> queryBuilder, ResponseParser<R,com.broadleafcommerce.search.api.domain.SearchResponse> responseParser, com.broadleafcommerce.search.provider.SearchProvider<Q,R> searchProvider, FieldDefinitionService<com.broadleafcommerce.search.api.domain.FieldDefinition> fieldDefinitionService, SearchValidator validator)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected com.broadleafcommerce.search.api.domain.SearchResponseexecuteSearch(com.broadleafcommerce.search.api.domain.SearchRequest searchRequest, List<com.broadleafcommerce.search.api.domain.FieldDefinition> fieldDefinitions, org.springframework.data.domain.Pageable page, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)Execute a search engine search for the requested query, page, and context.protected FieldDefinitionService<com.broadleafcommerce.search.api.domain.FieldDefinition>getFieldDefinitionService()protected QueryBuilder<Q>getQueryBuilder()protected ResponseParser<R,com.broadleafcommerce.search.api.domain.SearchResponse>getResponseParser()protected com.broadleafcommerce.search.provider.SearchProvider<Q,R>getSearchProvider()protected SearchValidatorgetValidator()protected List<com.broadleafcommerce.search.api.domain.FieldDefinition>readFieldDefinitions(String type, com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)Returns an unmodifiable List of FieldDefinitions for a specific type.protected com.broadleafcommerce.search.api.domain.SearchResponserunSpellCheckSearch(com.broadleafcommerce.search.api.domain.SearchResponse originalResponse, com.broadleafcommerce.search.api.domain.SearchRequest searchRequest, List<com.broadleafcommerce.search.api.domain.FieldDefinition> fieldDefinitions, org.springframework.data.domain.Pageable page, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)Re-runs a search with the suggested spell-check corrected query if applicable.com.broadleafcommerce.search.api.domain.SearchResponsesearch(com.broadleafcommerce.search.api.domain.SearchRequest searchRequest, org.springframework.data.domain.Pageable page, com.broadleafcommerce.data.tracking.core.context.ContextInfo context)Execute a search for the provided requested query and page.
-
-
-
Constructor Detail
-
DefaultSearchService
public DefaultSearchService(QueryBuilder<Q> queryBuilder, ResponseParser<R,com.broadleafcommerce.search.api.domain.SearchResponse> responseParser, com.broadleafcommerce.search.provider.SearchProvider<Q,R> searchProvider, FieldDefinitionService<com.broadleafcommerce.search.api.domain.FieldDefinition> fieldDefinitionService, SearchValidator validator)
-
-
Method Detail
-
search
public com.broadleafcommerce.search.api.domain.SearchResponse search(com.broadleafcommerce.search.api.domain.SearchRequest searchRequest, org.springframework.data.domain.Pageable page, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context) throws com.broadleafcommerce.search.api.SearchException, com.broadleafcommerce.search.api.InvalidSearchExceptionExecute a search for the provided requested query and page.If a search redirect is found, return only that and do not execute search.
- Specified by:
searchin interfaceSearchService<Q>- Parameters:
searchRequest- The query information to search bypage- The page to retrievecontext- The context information surrounding sandboxing/multitenant state- Returns:
- Search results with facet and sort information
- Throws:
com.broadleafcommerce.search.api.SearchException- if an error occurs in searchingcom.broadleafcommerce.search.api.InvalidSearchException
-
executeSearch
protected com.broadleafcommerce.search.api.domain.SearchResponse executeSearch(com.broadleafcommerce.search.api.domain.SearchRequest searchRequest, List<com.broadleafcommerce.search.api.domain.FieldDefinition> fieldDefinitions, org.springframework.data.domain.Pageable page, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context) throws com.broadleafcommerce.search.api.SearchExceptionExecute a search engine search for the requested query, page, and context.- Parameters:
searchRequest- The query information to search bypage- The page to retrievecontext- The context information surrounding sandboxing/multitenant state- Returns:
- Search results with facet and sort information
- Throws:
com.broadleafcommerce.search.api.SearchException- if an error occurs in searching
-
runSpellCheckSearch
protected com.broadleafcommerce.search.api.domain.SearchResponse runSpellCheckSearch(com.broadleafcommerce.search.api.domain.SearchResponse originalResponse, com.broadleafcommerce.search.api.domain.SearchRequest searchRequest, List<com.broadleafcommerce.search.api.domain.FieldDefinition> fieldDefinitions, org.springframework.data.domain.Pageable page, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo context) throws com.broadleafcommerce.search.api.SearchExceptionRe-runs a search with the suggested spell-check corrected query if applicable.- Parameters:
originalResponse- The original search responsesearchRequest- The search requestfieldDefinitions- The field definitions used on the original querypage- The page to retrievecontext- The context information surrounding sandboxing/multitenant statefieldDefinitions- The field definitions used on the original query- Returns:
- A search response with corrections made by spellcheck or the original search response if no corrections needed.
- Throws:
com.broadleafcommerce.search.api.SearchException- if an error occurs in searching
-
readFieldDefinitions
protected List<com.broadleafcommerce.search.api.domain.FieldDefinition> readFieldDefinitions(String type, @Nullable com.broadleafcommerce.data.tracking.core.context.ContextInfo contextInfo)
Returns an unmodifiable List of FieldDefinitions for a specific type.- Parameters:
type- The type.contextInfo- (optional) The context information surrounding sandboxing/multitenant state- Returns:
- An unmodifiable list of FieldDefinitions.
-
getQueryBuilder
protected QueryBuilder<Q> getQueryBuilder()
-
getResponseParser
protected ResponseParser<R,com.broadleafcommerce.search.api.domain.SearchResponse> getResponseParser()
-
getSearchProvider
protected com.broadleafcommerce.search.provider.SearchProvider<Q,R> getSearchProvider()
-
getFieldDefinitionService
protected FieldDefinitionService<com.broadleafcommerce.search.api.domain.FieldDefinition> getFieldDefinitionService()
-
getValidator
protected SearchValidator getValidator()
-
-