Class DefaultSolrQueryConverter

  • All Implemented Interfaces:
    SolrQueryConverter, org.springframework.beans.factory.Aware, org.springframework.beans.factory.BeanFactoryAware

    public class DefaultSolrQueryConverter
    extends java.lang.Object
    implements SolrQueryConverter, org.springframework.beans.factory.BeanFactoryAware
    Default Implementation of SolrQueryConverter
    • Constructor Detail

      • DefaultSolrQueryConverter

        public DefaultSolrQueryConverter()
    • Method Detail

      • setFieldNameTranslator

        public void setFieldNameTranslator​(FieldNameTranslator fieldNameTranslator)
      • setQueryPostProcessors

        public void setQueryPostProcessors​(java.util.List<SolrQueryPostProcessor> queryPostProcessors)
      • getDefaultLimit

        public java.lang.Integer getDefaultLimit()
      • setDefaultLimit

        public void setDefaultLimit​(java.lang.Integer defaultLimit)
      • getForbiddenChar

        public java.lang.String getForbiddenChar()
      • setForbiddenChar

        public void setForbiddenChar​(java.lang.String forbiddenChar)
      • 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:
        setBeanFactory in interface org.springframework.beans.factory.BeanFactoryAware
      • createSolrQuery

        protected org.apache.solr.client.solrj.SolrQuery createSolrQuery​(SearchQuery searchQuery)
      • buildQuery

        protected java.lang.String buildQuery​(java.lang.String[] queries,
                                              SearchQuery searchQuery)
      • splitQueryFields

        protected void splitQueryFields​(java.util.List<QueryField> source,
                                        java.util.List<QueryField> queries,
                                        java.util.List<QueryField> filterQueries,
                                        java.util.Map<java.lang.String,​DefaultSolrQueryConverter.IndexedFacetInfo> facetInfoMap)
        Manage the OR and AND operator in a multi-select search
        Parameters:
        source -
        queries -
        filterQueries -
        facetInfoMap -
      • escape

        protected java.lang.String escape​(java.lang.String text)
      • isFilterQueryField

        protected boolean isFilterQueryField​(QueryField queryField,
                                             java.util.Map<java.lang.String,​DefaultSolrQueryConverter.IndexedFacetInfo> facetInfoMap)
        Test if the queryField part of qf
        Parameters:
        queryField -
        facetInfoMap -
        Returns:
        true if the queryField is part of qf query
      • convertQueryFields

        protected java.lang.String[] convertQueryFields​(java.util.List<QueryField> queryFields,
                                                        java.util.Map<java.lang.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 java.lang.String[] convertCoupledQueryFields​(SearchQuery searchQuery,
                                                               java.util.List<CoupledQueryField> coupledQueryFields)
      • convertRawQueries

        protected java.lang.String[] convertRawQueries​(SearchQuery searchQuery,
                                                       java.util.List<RawQuery> rawQueries)
      • prepareQueryField

        protected java.lang.String prepareQueryField​(QueryField field)
      • 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)
      • 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

        protected java.lang.String combine​(java.lang.String[] values,
                                           java.lang.String separator)
      • prepareQueryFields

        protected java.util.List<QueryField> prepareQueryFields​(SearchQuery searchQuery)
      • prepareQueryFieldsFromFacetValues

        protected void prepareQueryFieldsFromFacetValues​(SearchQuery searchQuery,
                                                         java.util.Map<java.lang.String,​QueryField> queryFields)
      • prepareQueryFieldsFromQueries

        protected void prepareQueryFieldsFromQueries​(SearchQuery searchQuery,
                                                     java.util.Map<java.lang.String,​QueryField> queryFields)