SearchOptions Class


Parameters for filtering, sorting, faceting, paging, and other search query behaviors.

public class SearchOptions
type SearchOptions = class
Public Class SearchOptions



Initializes a new instance of SearchOptions.



The list of facet expressions to apply to the search query. Each facet expression contains a field name, optionally followed by a comma-separated list of name:value pairs.


The OData $filter expression to apply to the search query. You can use Create(FormattableString) to help construct the filter expression.


The list of field names to use for hit highlights. Only searchable fields can be used for hit highlighting.


A string tag that is appended to hit highlights. Must be set with highlightPreTag. Default is </em>.


A string tag that is prepended to hit highlights. Must be set with highlightPostTag. Default is <em>.


A value that specifies whether to fetch the total count of results as the TotalCount property. The default value is false. Setting this value to true may have a performance impact. Note that the count returned is an approximation.


A number between 0 and 100 indicating the percentage of the index that must be covered by a search query in order for the query to be reported as a success. This parameter can be useful for ensuring search availability even for services with only one replica. The default is 100.


The list of OData $orderby expressions by which to sort the results. Each expression can be either a field name or a call to either the geo.distance() or the search.score() functions. Each expression can be followed by asc to indicate ascending, or desc to indicate descending. The default is ascending order. Ties will be broken by the match scores of documents. If no $orderby is specified, the default sort order is descending by document match score. There can be at most 32 $orderby clauses.


A value that specifies the syntax of the search query. The default is 'simple'. Use 'full' if your query uses the Lucene query syntax.


The list of parameter values to be used in scoring functions (for example, referencePointParameter) using the format name-values. For example, if the scoring profile defines a function with a parameter called 'mylocation' the parameter string would be "mylocation--122.2,44.8" (without the quotes).


The name of a scoring profile to evaluate match scores for matching documents in order to sort the results.


A value that specifies whether we want to calculate scoring statistics (such as document frequency) globally for more consistent scoring, or locally, for lower latency. The default is 'local'. Use 'global' to aggregate scoring statistics globally before scoring. Using global scoring statistics can increase latency of search queries.


The list of field names to which to scope the full-text search. When using fielded search (fieldName:searchExpression) in a full Lucene query, the field names of each fielded search expression take precedence over any field names listed in this parameter.


A value that specifies whether any or all of the search terms must be matched in order to count the document as a match.


The list of fields to retrieve. If unspecified, all fields marked as retrievable in the schema are included.


A value to be used to create a sticky session, which can help getting more consistent results. As long as the same sessionId is used, a best-effort attempt will be made to target the same replica set. Be wary that reusing the same sessionID values repeatedly can interfere with the load balancing of the requests across replicas and adversely affect the performance of the search service. The value used as sessionId cannot start with a '_' character.


The number of search results to retrieve. This can be used in conjunction with Skip to implement client-side paging of search results. If results are truncated due to server-side paging, the response will include a continuation token that can be used to issue another Search request for the next page of results.


The number of search results to skip. This value cannot be greater than 100,000. If you need to scan documents in sequence, but cannot use skip due to this limitation, consider using orderby on a totally-ordered key and filter with a range query instead.

Applies to