Class DefaultSolrQueryConverter
java.lang.Object
de.hybris.platform.solrfacetsearch.search.impl.DefaultSolrQueryConverter
- All Implemented Interfaces:
SolrQueryConverter,org.springframework.beans.factory.Aware,org.springframework.beans.factory.BeanFactoryAware
public class DefaultSolrQueryConverter
extends Object
implements SolrQueryConverter, org.springframework.beans.factory.BeanFactoryAware
Default Implementation of
SolrQueryConverter-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumstatic class -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected static final Stringprotected static final SearchQuery.Operatorprotected static final int -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddFacetFields(org.apache.solr.client.solrj.SolrQuery solrQuery, SearchQuery solrSearchQuery) protected voidaddFacetFields(org.apache.solr.client.solrj.SolrQuery solrQuery, SearchQuery solrSearchQuery, FieldNameProvider solrFieldNameProvider) protected voidaddFacetFields(org.apache.solr.client.solrj.SolrQuery solrQuery, Map<String, DefaultSolrQueryConverter.IndexedFacetInfo> facetInfoMap) protected voidaddSolrParams(org.apache.solr.client.solrj.SolrQuery solrQuery, SearchQuery solrSearchQuery) protected org.apache.solr.client.solrj.SolrQueryapplyPostProcessorsInOrder(org.apache.solr.client.solrj.SolrQuery solrQuery, SearchQuery solrSearchQuery) protected StringbuildQuery(String[] queries, SearchQuery searchQuery) protected voidcheckQuery(SearchQuery solrSearchQuery) protected Stringprotected String[]convertCoupledQueryFields(SearchQuery searchQuery, List<CoupledQueryField> coupledQueryFields) protected String[]convertQueryFields(List<QueryField> queryFields, Map<String, DefaultSolrQueryConverter.IndexedFacetInfo> facetInfoMap) Converts all query fields to the solr query string.protected String[]convertRawQueries(SearchQuery searchQuery, List<RawQuery> rawQueries) org.apache.solr.client.solrj.SolrQueryconvertSolrQuery(SearchQuery searchQuery) ConvertsSearchQueryinstance into validSolrQuery.protected org.apache.solr.client.solrj.SolrQuerycreateSolrQuery(SearchQuery searchQuery) protected Stringorg.springframework.beans.factory.BeanFactoryprotected Map<String,DefaultSolrQueryConverter.IndexedFacetInfo> getFacetInfo(SearchQuery searchQuery) Retrieve info about the facet related to the searchQueryprotected FieldNameTranslatorprotected IndexedTypeFieldsValuesProvidergetFieldsValuesProvider(IndexedType indexType) Converter<SearchQueryConverterData,org.apache.solr.client.solrj.SolrQuery> protected List<CoupledQueryField>includeCatalogVersionFields(SearchQuery searchQuery) Includes the catalogId and catalogVersion query fields in the SOLR query, based on theSearchQuery.getCatalogVersions().protected booleanisFilterQueryField(QueryField queryField, Map<String, DefaultSolrQueryConverter.IndexedFacetInfo> facetInfoMap) Test if the queryField part of qfprotected StringprepareQueryField(QueryField field) protected List<QueryField>prepareQueryFields(SearchQuery searchQuery) protected voidprepareQueryFieldsFromFacetValues(SearchQuery searchQuery, Map<String, QueryField> queryFields) protected voidprepareQueryFieldsFromQueries(SearchQuery searchQuery, Map<String, QueryField> queryFields) protected SearchQuery.OperatorresolveOperator(SearchQuery searchQuery) voidsetBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory) voidsetDefaultLimit(Integer defaultLimit) voidsetFacetSearchContextFactory(FacetSearchContextFactory<FacetSearchContext> facetSearchContextFactory) voidsetFacetSort(DefaultSolrQueryConverter.FacetSort facetSort) voidsetFieldNameTranslator(FieldNameTranslator fieldNameTranslator) voidsetFieldOperator(SearchQuery.Operator fieldOperator) voidsetForbiddenChar(String forbiddenChar) voidsetLegacyFacetSearchQueryConverter(Converter<SearchQueryConverterData, org.apache.solr.client.solrj.SolrQuery> legacyFacetSearchQueryConverter) voidsetQueryPostProcessors(List<SolrQueryPostProcessor> queryPostProcessors) protected voidsplitQueryFields(List<QueryField> source, List<QueryField> queries, List<QueryField> filterQueries, Map<String, DefaultSolrQueryConverter.IndexedFacetInfo> facetInfoMap) Manage the OR and AND operator in a multi-select search
-
Field Details
-
ALL_QUERY
- See Also:
-
DEFAULT_FIELD_OPERATOR
-
DEFAULT_LIMIT
protected static final int DEFAULT_LIMIT- See Also:
-
-
Constructor Details
-
DefaultSolrQueryConverter
public DefaultSolrQueryConverter()
-
-
Method Details
-
getFieldNameTranslator
-
setFieldNameTranslator
-
getQueryPostProcessors
-
setQueryPostProcessors
-
getFacetSort
-
setFacetSort
-
getFieldOperator
-
setFieldOperator
-
getDefaultLimit
-
setDefaultLimit
-
getForbiddenChar
-
setForbiddenChar
-
getFacetSearchContextFactory
-
setFacetSearchContextFactory
public void setFacetSearchContextFactory(FacetSearchContextFactory<FacetSearchContext> facetSearchContextFactory) -
getLegacyFacetSearchQueryConverter
public Converter<SearchQueryConverterData,org.apache.solr.client.solrj.SolrQuery> getLegacyFacetSearchQueryConverter() -
setLegacyFacetSearchQueryConverter
public void setLegacyFacetSearchQueryConverter(Converter<SearchQueryConverterData, org.apache.solr.client.solrj.SolrQuery> legacyFacetSearchQueryConverter) -
getBeanFactory
public org.springframework.beans.factory.BeanFactory getBeanFactory() -
setBeanFactory
public void setBeanFactory(org.springframework.beans.factory.BeanFactory beanFactory) - Specified by:
setBeanFactoryin interfaceorg.springframework.beans.factory.BeanFactoryAware
-
convertSolrQuery
public org.apache.solr.client.solrj.SolrQuery convertSolrQuery(SearchQuery searchQuery) throws FacetSearchException Description copied from interface:SolrQueryConverterConvertsSearchQueryinstance into validSolrQuery.- Specified by:
convertSolrQueryin interfaceSolrQueryConverter- Throws:
FacetSearchException
-
createSolrQuery
-
includeCatalogVersionFields
Includes the catalogId and catalogVersion query fields in the SOLR query, based on theSearchQuery.getCatalogVersions().- Returns:
- List of
CoupledQueryField
-
buildQuery
-
splitQueryFields
protected void splitQueryFields(List<QueryField> source, List<QueryField> queries, List<QueryField> filterQueries, Map<String, DefaultSolrQueryConverter.IndexedFacetInfo> facetInfoMap) Manage the OR and AND operator in a multi-select search- Parameters:
source-queries-filterQueries-facetInfoMap-
-
getFacetInfo
protected Map<String,DefaultSolrQueryConverter.IndexedFacetInfo> getFacetInfo(SearchQuery searchQuery) Retrieve info about the facet related to the searchQuery- Parameters:
searchQuery-- Returns:
- Map of IndexedFacetInfo
-
escape
-
isFilterQueryField
protected boolean isFilterQueryField(QueryField queryField, Map<String, DefaultSolrQueryConverter.IndexedFacetInfo> facetInfoMap) Test if the queryField part of qf- Parameters:
queryField-facetInfoMap-- Returns:
- true if the queryField is part of qf query
-
checkQuery
- Throws:
FacetSearchException
-
convertQueryFields
protected String[] convertQueryFields(List<QueryField> queryFields, Map<String, DefaultSolrQueryConverter.IndexedFacetInfo> facetInfoMap) Converts all query fields to the solr query string. Example: [hardware:cpu, hardware:intel, manufacture:sony(OR), manufacture:ibm(OR)] --> [(hardware:(cpu AND intel)) AND (manufacture:(sony OR ibm))]- Returns:
- converted query string
-
convertCoupledQueryFields
protected String[] convertCoupledQueryFields(SearchQuery searchQuery, List<CoupledQueryField> coupledQueryFields) -
convertRawQueries
-
prepareQueryField
-
getFieldsValuesProvider
-
addFacetFields
protected void addFacetFields(org.apache.solr.client.solrj.SolrQuery solrQuery, SearchQuery solrSearchQuery, FieldNameProvider solrFieldNameProvider) -
addFacetFields
protected void addFacetFields(org.apache.solr.client.solrj.SolrQuery solrQuery, SearchQuery solrSearchQuery) -
addFacetFields
protected void addFacetFields(org.apache.solr.client.solrj.SolrQuery solrQuery, Map<String, DefaultSolrQueryConverter.IndexedFacetInfo> facetInfoMap) -
addSolrParams
protected void addSolrParams(org.apache.solr.client.solrj.SolrQuery solrQuery, SearchQuery solrSearchQuery) -
applyPostProcessorsInOrder
protected org.apache.solr.client.solrj.SolrQuery applyPostProcessorsInOrder(org.apache.solr.client.solrj.SolrQuery solrQuery, SearchQuery solrSearchQuery) -
combine
-
prepareQueryFields
-
prepareQueryFieldsFromFacetValues
protected void prepareQueryFieldsFromFacetValues(SearchQuery searchQuery, Map<String, QueryField> queryFields) -
prepareQueryFieldsFromQueries
protected void prepareQueryFieldsFromQueries(SearchQuery searchQuery, Map<String, QueryField> queryFields) -
resolveOperator
-