Class SearchParameters

  • All Implemented Interfaces:
    BasicSearchParameters

    @AlfrescoPublicApi
    public class SearchParameters
    extends Object
    implements BasicSearchParameters
    This class provides parameters to define a search. TODO - paging of results page number and page size - paging isolation - REPEATABLE READ, READ COMMITTED, may SEE ONCE tracking node refs in previous result sets - how long repeatable read may be held - limit by the number of permission evaluations
    Author:
    Andy Hind
    • Constructor Detail

      • SearchParameters

        public SearchParameters()
        Default constructor
      • SearchParameters

        public SearchParameters​(QueryOptions options)
        Construct from Query Options
        Parameters:
        options - QueryOptions
    • Method Detail

      • setHighlight

        public void setHighlight​(GeneralHighlightParameters highlight)
        Sets parameters used for search highlighing
        Parameters:
        highlight - GeneralHighlightParameters
      • setInterval

        public void setInterval​(IntervalParameters interval)
        Sets parameters used for Intervals
        Parameters:
        interval - IntervalParameters
      • setLanguage

        public void setLanguage​(String language)
        Set the query language.
        Parameters:
        language - - the query language.
      • getTimezone

        public String getTimezone()
      • setTimezone

        public void setTimezone​(String timezone)
        Override the default TimeZone (UTC)
        Parameters:
        timezone - any zone ID supported by @see java.time.ZoneId
      • addExtraParameter

        public void addExtraParameter​(String name,
                                      String value)
      • setQuery

        public void setQuery​(String query)
        Set the query string.
        Parameters:
        query - - the query string.
      • addStore

        public void addStore​(StoreRef store)
        Set the stores to be supported - currently there can be only one. Searching across multiple stores is on the todo list.
        Parameters:
        store - StoreRef
      • addQueryParameterDefinition

        public void addQueryParameterDefinition​(QueryParameterDefinition queryParameterDefinition)
        Add parameter definitions for the query - used to parameterise the query string
        Parameters:
        queryParameterDefinition - QueryParameterDefinition
      • excludeDataInTheCurrentTransaction

        public void excludeDataInTheCurrentTransaction​(boolean excludeDataInTheCurrentTransaction)
        If true, any data in the current transaction will be ignored in the search. You will not see anything you have added in the current transaction. By default you will see data in the current transaction. This effectively gives read committed isolation. There is a performance overhead for this, at least when using lucene. This flag may be set to avoid that performance hit if you know you do not want to find results that are yet to be committed (this includes creations, deletions and updates)
        Parameters:
        excludeDataInTheCurrentTransaction - boolean
      • addSort

        public void addSort​(String field,
                            boolean ascending)
        Add a sort to the query (for those query languages that do not support it directly) The first sort added is treated as primary, the second as secondary etc. A helper method to create SortDefinitions.
        Parameters:
        field - - this is initially a direct attribute on a node not an attribute on the parent etc TODO: It could be a relative path at some time.
        ascending - - true to sort ascending, false for descending.
      • addSort

        public void addSort​(SearchParameters.SortDefinition sortDefinition)
        Add a sort definition.
        Parameters:
        sortDefinition - - the sort definition to add. Use the static member variables for sorting in score and index order.
      • getHighlight

        public GeneralHighlightParameters getHighlight()
        Gets the parameters used for search highlighing
        Returns:
        GeneralHighlightParameters - the highlighting parameters
      • excludeDataInTheCurrentTransaction

        public boolean excludeDataInTheCurrentTransaction()
        Is data in the current transaction excluded from the search.
        Returns:
        - true if data in the current transaction is ignored
      • getQueryParameterDefinitions

        public ArrayList<QueryParameterDefinition> getQueryParameterDefinitions()
        Get the query parameters that apply to this query.
        Returns:
        - the parameter
      • setDefaultOperator

        public void setDefaultOperator​(SearchParameters.Operator defaultOperator)
        Set the default operator for query elements when they are not explicit in the query.
        Parameters:
        defaultOperator - Operator
      • getDefaultOperator

        public SearchParameters.Operator getDefaultOperator()
        Get the default operator for query elements when they are not explicit in the query.
        Returns:
        the default operator
      • getLimitBy

        public LimitBy getLimitBy()
        Get how the result set should be limited
        Returns:
        how the result set will be or was limited
      • setLimitBy

        public void setLimitBy​(LimitBy limitBy)
        Set how the result set should be limited.
        Parameters:
        limitBy - LimitBy
      • getPermissionEvaluation

        public PermissionEvaluationMode getPermissionEvaluation()
        Get when permissions are evaluated.
        Returns:
        - how permissions are evaluated
      • setPermissionEvaluation

        public void setPermissionEvaluation​(PermissionEvaluationMode permissionEvaluation)
        Set when permissions are evaluated.
        Parameters:
        permissionEvaluation - PermissionEvaluationMode
      • getLimit

        public int getLimit()
        If limiting the result set in some way, get the limiting value used.
        Returns:
        the limit
      • setLimit

        public void setLimit​(int limit)
        If limiting the result set in some way, set the limiting value used.
        Parameters:
        limit - int
      • getMlAnalaysisMode

        public MLAnalysisMode getMlAnalaysisMode()
        The way in which multilingual fields are treated durig a search. By default, only the specified locale is used and it must be an exact match.
        Returns:
        - how locale related text is tokenised
      • setMlAnalaysisMode

        public void setMlAnalaysisMode​(MLAnalysisMode mlAnalaysisMode)
        Set the way in which multilingual fields are treated durig a search. This controls in which locales an multilingual fields will match.
        Parameters:
        mlAnalaysisMode - MLAnalysisMode
      • addLocale

        public void addLocale​(Locale locale)
        Add a locale to include for multi-lingual text searches. If non are set, the default is to use the user's locale.
        Parameters:
        locale - Locale
      • addTextAttribute

        public void addTextAttribute​(String attribute)
        Add a field for TEXT expansion
        Parameters:
        attribute - - field/attribute in the index
      • getTextAttributes

        public Set<String> getTextAttributes()
        Get the text attributes used for text expansion.
        Returns:
        the text attributes used for text expansion
      • addAllAttribute

        public void addAllAttribute​(String attribute)
        Add a field for ALL expansion
        Parameters:
        attribute - - field/attribute in the index
      • getAllAttributes

        public Set<String> getAllAttributes()
        Get the text attributes used for ALL expansion.
        Returns:
        the text attributes used for ALL expansion
      • getMaxItems

        public int getMaxItems()
        Get the max number of rows for the result set 0 or less is unlimited
        Returns:
        the maxItems
      • setMaxItems

        public void setMaxItems​(int maxItems)
        Set the max number of rows for the result set. A negative value implies unlimited 0 will return no results.
        Parameters:
        maxItems - the maxItems to set
      • getSkipCount

        public int getSkipCount()
        Get the skip count - the number of rows to skip at the start of the query.
        Returns:
        the skipCount
      • setSkipCount

        public void setSkipCount​(int skipCount)
        Set the skip count - the number of rows to skip at the start of the query.
        Parameters:
        skipCount - the skipCount to set
      • getDefaultFTSOperator

        public SearchParameters.Operator getDefaultFTSOperator()
        Get the default connective used when OR and AND are not specified for the FTS contains() function.
        Returns:
        the defaultFTSConnective
      • setDefaultFTSOperator

        public void setDefaultFTSOperator​(SearchParameters.Operator defaultFTSOperator)
        Set the default connective used when OR and AND are not specified for the FTS contains() function.
        Parameters:
        defaultFTSOperator - the defaultFTSOperator to set
      • getDefaultFTSFieldOperator

        public SearchParameters.Operator getDefaultFTSFieldOperator()
        As getDefaultFTSConnective() but for field groups
        Returns:
        the defaultFTSFieldConnective
      • setDefaultFTSFieldConnective

        public void setDefaultFTSFieldConnective​(SearchParameters.Operator defaultFTSFieldOperator)
        As setDefaultFTSConnective() but for field groups
        Parameters:
        defaultFTSFieldOperator - the defaultFTSFieldOperator to set
      • getNamespace

        public String getNamespace()
        Get the default namespace.
        Returns:
        the default namspace uri or prefix.
      • setNamespace

        public void setNamespace​(String namespace)
        Set the default namespace
        Parameters:
        namespace - - the uri or prefix for the default namespace.
      • getQueryTemplates

        public Map<String,​String> getQueryTemplates()
        Get the query templates
        Returns:
        - the query templates
      • addQueryTemplate

        public String addQueryTemplate​(String name,
                                       String template)
        Add/replace a query template Not all languages support query templates
        Parameters:
        name - String
        template - String
        Returns:
        any removed template or null
      • getMaxPermissionCheckTimeMillis

        public long getMaxPermissionCheckTimeMillis()
      • setMaxPermissionCheckTimeMillis

        public void setMaxPermissionCheckTimeMillis​(long maxPermissionCheckTimeMillis)
      • getMaxPermissionChecks

        public int getMaxPermissionChecks()
      • setMaxPermissionChecks

        public void setMaxPermissionChecks​(int maxPermissionChecks)
      • getUseInMemorySort

        public Boolean getUseInMemorySort()
        Returns:
        the useInMemorySort
      • setUseInMemorySort

        public void setUseInMemorySort​(Boolean useInMemorySort)
        Parameters:
        useInMemorySort - the useInMemorySort to set
      • getMaxRawResultSetSizeForInMemorySort

        public Integer getMaxRawResultSetSizeForInMemorySort()
        Returns:
        the maxRawResultSetSizeForInMemorySort
      • setMaxRawResultSetSizeForInMemorySort

        public void setMaxRawResultSetSizeForInMemorySort​(Integer maxRawResultSetSizeForInMemorySort)
        Parameters:
        maxRawResultSetSizeForInMemorySort - the maxRawResultSetSizeForInMemorySort to set
      • isBulkFetchEnabled

        public boolean isBulkFetchEnabled()
        Returns:
        true if bulk fetch is enabled
      • setBulkFetchEnabled

        public void setBulkFetchEnabled​(boolean isBulkFetchEnabled)
        Parameters:
        isBulkFetchEnabled - boolean
      • getDefaultFieldName

        public String getDefaultFieldName()
        Returns:
        the default field name
      • setDefaultFieldName

        public void setDefaultFieldName​(String defaultFieldName)
        Parameters:
        defaultFieldName - - the default field name to use
      • getFacetQueries

        public List<String> getFacetQueries()
      • addFacetQuery

        public void addFacetQuery​(String facetQuery)
      • getFilterQueries

        public List<String> getFilterQueries()
      • addFilterQuery

        public void addFilterQuery​(String filterQuery)
      • addPivots

        public void addPivots​(List<String> pivotFields)
      • getSortLocale

        public Locale getSortLocale()
      • setExcludeTenantFilter

        public void setExcludeTenantFilter​(boolean excludeTenantFilter)
      • getExcludeTenantFilter

        public boolean getExcludeTenantFilter()
      • setQueryConsistency

        public void setQueryConsistency​(QueryConsistency queryConsistency)
      • getQueryConsistency

        public QueryConsistency getQueryConsistency()
        Returns:
        the queryConsistency
      • getSinceTxId

        public Long getSinceTxId()
        If not null, then the search should only include results from transactions after sinceTxId.
        Returns:
        sinceTxId
      • setSinceTxId

        public void setSinceTxId​(Long sinceTxId)
        If not null, then the search should only include results from transactions after sinceTxId.
        Parameters:
        sinceTxId - Long
      • getSearchTerm

        public String getSearchTerm()
        Returns:
        the searchTerm
      • setSearchTerm

        public void setSearchTerm​(String searchTerm)
        Parameters:
        searchTerm - the searchTerm to set
      • isSpellCheck

        public boolean isSpellCheck()
        Returns:
        the spellCheck
      • hasFaceting

        public boolean hasFaceting()
        Checks if faceting is used as part of the query, Search-347.
        Parameters:
        searchParameters -
        Returns:
        true if exists
      • setSpellCheck

        public void setSpellCheck​(boolean spellCheck)
        Parameters:
        spellCheck - the spellCheck to set
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object
      • toAuditString

        public String toAuditString()
      • usePostSort

        public boolean usePostSort​(int length,
                                   boolean useInMemorySortDefault,
                                   int maxRawResultSetSizeForInMemorySortDefault)
        Parameters:
        length - int
        useInMemorySortDefault - boolean
        maxRawResultSetSizeForInMemorySortDefault - int
        Returns:
        boolean
      • isIncludeMetadata

        public boolean isIncludeMetadata()
      • setIncludeMetadata

        public void setIncludeMetadata​(boolean includeMetadata)