Class SearchQuery

  • All Implemented Interfaces:
    java.io.Serializable
    Direct Known Subclasses:
    BackofficeSearchQuery

    public class SearchQuery
    extends java.lang.Object
    implements java.io.Serializable
    See Also:
    Serialized Form
    • Method Detail

      • addLegacySorts

        protected final void addLegacySorts​(SearchConfig searchConfig)
      • getFacetSearchConfig

        public FacetSearchConfig getFacetSearchConfig()
        Returns the facet search config.
        Returns:
        the facet search config
      • getIndexedType

        public IndexedType getIndexedType()
        Returns the indexed type.
        Returns:
        the indexed type
      • getLanguage

        public java.lang.String getLanguage()
        Returns the language.
        Returns:
        the language
      • setLanguage

        public void setLanguage​(java.lang.String language)
        Sets the language.
        Parameters:
        language - - isocode of the language
      • getCurrency

        public java.lang.String getCurrency()
        Returns the currency.
        Returns:
        the currency
      • setCurrency

        public void setCurrency​(java.lang.String currency)
        Sets the currency.
        Parameters:
        currency - - isocode of the currency
      • getCatalogVersions

        public java.util.List<CatalogVersionModel> getCatalogVersions()
        Returns the catalog versions.
        Returns:
        the catalog versions
      • setCatalogVersions

        public void setCatalogVersions​(java.util.List<CatalogVersionModel> catalogVersions)
        Sets the catalog versions.
        Parameters:
        catalogVersions - - the catalog versions
      • getOffset

        public int getOffset()
        Returns the offset (page number). This is used for pagination.
        Returns:
        the offset (page number)
      • setOffset

        public void setOffset​(int offset)
        Sets the offset (page number). This is used for pagination.
        Parameters:
        offset - the offset (page number)
      • getPageSize

        public int getPageSize()
        Returns the page size. This is used for pagination.
        Returns:
        the page size
      • setPageSize

        public void setPageSize​(int pageSize)
        Sets the page size. This is used for pagination.
        Parameters:
        pageSize - the page size
      • nextPage

        public void nextPage()
        Changes the offset to the next page. Used for pagination.
      • prevPage

        public void prevPage()
        Changes the offset to the previous page. Used for pagination.
      • getDefaultOperator

        public SearchQuery.Operator getDefaultOperator()
        Returns the default operator for the search query.
        Returns:
        the defaultOperator
      • setDefaultOperator

        public void setDefaultOperator​(SearchQuery.Operator defaultOperator)
        Sets the default operator for the search query.
        Parameters:
        defaultOperator - the default operator
      • addQuery

        public void addQuery​(java.lang.String field,
                             java.lang.String... values)
        Adds a query field.
        Parameters:
        field - - the field
        values - - the values
      • addQuery

        public void addQuery​(java.lang.String field,
                             SearchQuery.Operator operator,
                             java.lang.String... values)
        Adds a query field.
        Parameters:
        field - - the field
        operator - - the operator
        values - - the values
      • addQuery

        public void addQuery​(java.lang.String field,
                             SearchQuery.Operator operator,
                             SearchQuery.QueryOperator queryOperator,
                             java.lang.String... values)
        Adds a query field.
        Parameters:
        field - - the field
        operator - - the operator
        queryOperator - - the query operator
        values - - the values
      • addQuery

        public void addQuery​(java.lang.String field,
                             SearchQuery.Operator operator,
                             SearchQuery.QueryOperator queryOperator,
                             java.util.Set<java.lang.String> values)
        Adds a query field.
        Parameters:
        field - - the field
        operator - - the operator
        queryOperator - - the query operator
        values - - the values
      • addQuery

        public void addQuery​(QueryField query)
        Adds a query field.
        Parameters:
        query - - the query field
      • getQueries

        public java.util.List<QueryField> getQueries()
        Returns the query fields.
        Returns:
        the query fields
      • getFreeTextQueryBuilder

        public java.lang.String getFreeTextQueryBuilder()
        Returns the query builder.
        Returns:
        the query builder
      • setFreeTextQueryBuilder

        public void setFreeTextQueryBuilder​(java.lang.String freeTextQueryBuilder)
        Sets the query builder.
        Parameters:
        freeTextQueryBuilder - - the query builder
      • getFreeTextQueryBuilderParameters

        public java.util.Map<java.lang.String,​java.lang.String> getFreeTextQueryBuilderParameters()
        Returns the query builder parameters.
        Returns:
        the query builder parameters
      • getUserQuery

        public java.lang.String getUserQuery()
        Returns the user query.
        Returns:
        the user query
      • setUserQuery

        public void setUserQuery​(java.lang.String userQuery)
        Sets the user query.
        Parameters:
        userQuery - - the user query
      • getKeywords

        public java.util.List<Keyword> getKeywords()
        Returns the keywords.
        Returns:
        the keywords
      • setKeywords

        public void setKeywords​(java.util.List<Keyword> keywords)
        Sets the keywords.
        Parameters:
        keywords - - the keywords
      • addFreeTextQuery

        public void addFreeTextQuery​(java.lang.String field,
                                     java.lang.Integer minTermLength,
                                     java.lang.Float boost)
        Adds a free text query field.
        Parameters:
        field - - the field
        minTermLength - - minimal length of the search term
        boost - - the boost value
      • addFreeTextQuery

        public void addFreeTextQuery​(FreeTextQueryField freeTextQuery)
        Adds a free text query field.
        Parameters:
        freeTextQuery - - the free text query field
      • getFreeTextQueries

        public java.util.List<FreeTextQueryField> getFreeTextQueries()
        Returns the free text query fields.
        Returns:
        the free text query fields
      • addFreeTextFuzzyQuery

        public void addFreeTextFuzzyQuery​(java.lang.String field,
                                          java.lang.Integer minTermLength,
                                          java.lang.Integer fuzziness,
                                          java.lang.Float boost)
        Adds a free text fuzzy query field.
        Parameters:
        field - -the field
        minTermLength - - minimal length of the search term
        fuzziness - - the fuzziness value
        boost - - the boost value
      • addFreeTextFuzzyQuery

        public void addFreeTextFuzzyQuery​(FreeTextFuzzyQueryField freeTextFuzzyQuery)
        Adds a free text fuzzy query field.
        Parameters:
        freeTextFuzzyQuery - -the free text fuzzy query field
      • getFreeTextFuzzyQueries

        public java.util.List<FreeTextFuzzyQueryField> getFreeTextFuzzyQueries()
        Returns the free text fuzzy query fields.
        Returns:
        the free text fuzzy query fields
      • addFreeTextWildcardQuery

        public void addFreeTextWildcardQuery​(java.lang.String field,
                                             java.lang.Integer minTermLength,
                                             WildcardType wildcardType,
                                             java.lang.Float boost)
        Adds a free text wildcard query field.
        Parameters:
        field - - the field
        minTermLength - - minimal length of the search term
        wildcardType - - the wildcard type
        boost - - the boost value
      • addFreeTextWildcardQuery

        public void addFreeTextWildcardQuery​(FreeTextWildcardQueryField freeTextWildcardQuery)
        Adds a free text wildcard query field.
        Parameters:
        freeTextWildcardQuery - -the free text wildcard query field
      • getFreeTextWildcardQueries

        public java.util.List<FreeTextWildcardQueryField> getFreeTextWildcardQueries()
        Returns the free text wildcard query fields.
        Returns:
        the free text wildcard query fields
      • addFreeTextPhraseQuery

        public void addFreeTextPhraseQuery​(java.lang.String field,
                                           java.lang.Float slop,
                                           java.lang.Float boost)
        Adds a free text phrase query field.
        Parameters:
        field - - the field
        slop - - the slop value
        boost - - the boost value
      • addFreeTextPhraseQuery

        public void addFreeTextPhraseQuery​(FreeTextPhraseQueryField freeTextPhraseQuery)
        Adds a free text phrase query field.
        Parameters:
        freeTextPhraseQuery - - the free text phrase query field
      • getFreeTextPhraseQueries

        public java.util.List<FreeTextPhraseQueryField> getFreeTextPhraseQueries()
        Returns the free text phrase query fields.
        Returns:
        the free text phrase query fields
      • addRawQuery

        public void addRawQuery​(java.lang.String rawQuery)
        Adds a raw query using lucene syntax.
        Parameters:
        rawQuery - - the raw query
      • addRawQuery

        public void addRawQuery​(RawQuery rawQuery)
        Adds a raw query using lucene syntax.
        Parameters:
        rawQuery - - the raw query
      • getRawQueries

        public java.util.List<RawQuery> getRawQueries()
        Returns the raw queries.
        Returns:
        the raw queries
      • addFilterQuery

        public void addFilterQuery​(java.lang.String field,
                                   java.lang.String... values)
        Adds a filter query field.
        Parameters:
        field - - the field
        values - - the values
      • addFilterQuery

        public void addFilterQuery​(java.lang.String field,
                                   SearchQuery.Operator operator,
                                   java.lang.String... values)
        Adds a filter query field.
        Parameters:
        field - - the field
        operator - - the operator
        values - - the values
      • addFilterQuery

        public void addFilterQuery​(java.lang.String field,
                                   SearchQuery.Operator operator,
                                   java.util.Set<java.lang.String> values)
        Adds a filter query field.
        Parameters:
        field - - the field
        operator - - the operator
        values - - the values
      • addFilterQuery

        public void addFilterQuery​(QueryField query)
        Adds a filter query field.
        Parameters:
        query - - the filter query field
      • getFilterQueries

        public java.util.List<QueryField> getFilterQueries()
        Returns the filter query fields.
        Returns:
        the filter query fields
      • addFilterRawQuery

        public void addFilterRawQuery​(java.lang.String rawQuery)
        Adds a filter raw query using lucene syntax.
        Parameters:
        rawQuery - - the raw query
      • addFilterRawQuery

        public void addFilterRawQuery​(RawQuery rawQuery)
        Adds a filter raw query using lucene syntax.
        Parameters:
        rawQuery - - the raw query
      • getFilterRawQueries

        public java.util.List<RawQuery> getFilterRawQueries()
        Returns the filter raw queries.
        Returns:
        the filter raw queries
      • addGroupCommand

        public void addGroupCommand​(java.lang.String field)
        Adds group command field.
        Parameters:
        field - - the group field
      • addGroupCommand

        public void addGroupCommand​(java.lang.String field,
                                    java.lang.Integer groupLimit)
        Adds group command field.
        Parameters:
        field - - the group field
        groupLimit - - the group limit
      • addGroupCommand

        public void addGroupCommand​(GroupCommandField groupCommand)
        Adds group command field.
        Parameters:
        groupCommand - - the group command field
      • getGroupCommands

        public java.util.List<GroupCommandField> getGroupCommands()
        Returns group command fields.
        Returns:
        the group command fields
      • isGroupFacets

        public boolean isGroupFacets()
        Returns true if group facets is enabled for the search query.
        Returns:
        true if group facets is enabled, false otherwise
      • setGroupFacets

        public void setGroupFacets​(boolean groupFacets)
        Enables or disables group facets for the search query.
        Parameters:
        groupFacets - true to enable group facets, false to disable it
      • addSort

        public void addSort​(java.lang.String field)
        Adds a sort field using ascending as sort order.
        Parameters:
        field - - the field
      • addSort

        public void addSort​(java.lang.String field,
                            OrderField.SortOrder sortOrder)
        Adds a sort field.
        Parameters:
        field - - the field
        sortOrder - - the sort order
      • addSort

        public void addSort​(OrderField sort)
        Adds a sort field.
        Parameters:
        sort - - the sort field
      • getSorts

        public java.util.List<OrderField> getSorts()
        Returns the sort fields.
        Returns:
        the sort fields
      • addField

        public void addField​(java.lang.String field)
        Adds a field to the list of fields that will be returned within a query response.
        Parameters:
        field - - the field
      • getFields

        public java.util.List<java.lang.String> getFields()
        Returns the list of fields that will be returned within a query response.
        Returns:
        the fields
      • addHighlightingField

        public void addHighlightingField​(java.lang.String highlightingField)
        Adds a field to the list of fields that will be used for highlighting the search term.
        Parameters:
        highlightingField - - the field used for highlighting.
      • getHighlightingFields

        public java.util.List<java.lang.String> getHighlightingFields()
        Returns the list of fields that will be used for highlighting search term.
        Returns:
        the fields
      • addFacet

        public void addFacet​(java.lang.String field)
        Adds a facet field.
        Parameters:
        field - - the field
      • addFacet

        public void addFacet​(java.lang.String field,
                             FacetType facetType)
        Adds a facet field.
        Parameters:
        field - - the field
        facetType - - the facet type
      • addFacet

        public void addFacet​(FacetField facet)
        Adds a facet field.
        Parameters:
        facet - - the facet field
      • getFacets

        public java.util.List<FacetField> getFacets()
        Returns the facet fields.
        Returns:
        the facet fields.
      • addFacetValue

        public void addFacetValue​(java.lang.String field,
                                  java.lang.String... values)
        Adds a facet value field.
        Parameters:
        field - - the field
        values - - the values
      • addFacetValue

        public void addFacetValue​(java.lang.String field,
                                  java.util.Set<java.lang.String> values)
        Adds a facet value field.
        Parameters:
        field - - the field
        values - - the values
      • addFacetValue

        public void addFacetValue​(FacetValueField facetValue)
        Adds a facet value field.
        Parameters:
        facetValue - - the facet value field
      • getFacetValues

        public java.util.List<FacetValueField> getFacetValues()
        Returns the facet value fields.
        Returns:
        the facet value fields.
      • addBoost

        public void addBoost​(BoostField boostField)
      • getBoosts

        public java.util.List<BoostField> getBoosts()
      • addPromotedItem

        public void addPromotedItem​(PK itemPk)
      • getPromotedItems

        public java.util.List<PK> getPromotedItems()
      • addExcludedItem

        public void addExcludedItem​(PK itemPk)
      • getExcludedItems

        public java.util.List<PK> getExcludedItems()
      • isEnableSpellcheck

        public boolean isEnableSpellcheck()
        Returns true if spell checking is enabled for the search query.
        Returns:
        true if spell checking is enabled, false otherwise
      • setEnableSpellcheck

        public void setEnableSpellcheck​(boolean enableSpellcheck)
        Enables or disables spell checking for the search query.
        Parameters:
        enableSpellcheck - true to enable spell checking, false to disable it
      • addRawParam

        public void addRawParam​(java.lang.String param,
                                java.lang.String... values)
        Adds a new raw parameter.
        Parameters:
        param - - the parameter
        values - - the values for the parameter
      • getRawParams

        public java.util.Map<java.lang.String,​java.lang.String[]> getRawParams()
        Returns the raw parameters.
        Returns:
        the raw parameters
      • getBreadcrumbs

        public java.util.List<Breadcrumb> getBreadcrumbs()
        Returns:
        the breadcrumbs
      • setQueryParser

        @Deprecated(since="5.7")
        public void setQueryParser​(SearchQuery.QueryParser queryParser)
        Deprecated.
        Since 5.7, query syntax should not rely on specific query parser.
        Set custom QueryParser. If not set default query parser is used.
      • getQueryParser

        @Deprecated(since="5.7")
        public SearchQuery.QueryParser getQueryParser()
        Deprecated.
        Since 5.7, query syntax should not rely on specific query parser.
        Get custom QueryParser.
        Returns:
        QueryParser or null when it was not set.
      • addRawQuery

        @Deprecated(since="5.7")
        public void addRawQuery​(java.lang.String rawQuery,
                                SearchQuery.Operator operator)
        Deprecated.
        Adds a raw query using lucene syntax.
        Parameters:
        rawQuery - - the raw query
        operator - - the operator
      • addBoostField

        @Deprecated(since="5.7")
        public void addBoostField​(java.lang.String field,
                                  java.lang.String value,
                                  SearchQuery.Operator operator)
        Deprecated.
        Since 5.7, replaced by addBoost(BoostField)
      • getBoostFields

        @Deprecated(since="5.7")
        public java.util.List<QueryField> getBoostFields()
        Deprecated.
        Since 5.7, replaced by getRawQueries()
        Returns:
        list of all boost fields
      • findField

        protected int findField​(java.lang.String name)
      • findBoostField

        protected int findBoostField​(java.lang.String name)
      • addCoupledFields

        public void addCoupledFields​(CoupledQueryField field)
        Adds logically coupled query fields.
      • getCoupledFields

        public java.util.List<CoupledQueryField> getCoupledFields()
        Returns:
        the coupledFields
      • getNamedSort

        public java.lang.String getNamedSort()
      • setNamedSort

        public void setNamedSort​(java.lang.String namedSort)