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.SearchResponse
executeSearch(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 SearchValidator
getValidator()
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.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, 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.SearchResponse
search(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.InvalidSearchException
Execute 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:
search
in 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.SearchException
Execute 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.SearchException
Re-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()
-
-