CIOSearchQuery

public struct CIOSearchQuery : CIORequestData

Struct encapsulating the necessary and additional parameters required to execute a search query.

  • The user typed query to return results for

    Declaration

    Swift

    public let query: String
  • The filters used to refine results

    Declaration

    Swift

    public let filters: CIOQueryFilters?
  • The page number of the results

    Declaration

    Swift

    public let page: Int
  • The number of results per page to return

    Declaration

    Swift

    public let perPage: Int
  • The sort method/order for results

    Declaration

    Swift

    public let sortOption: CIOSortOption?
  • The section to return results from

    Declaration

    Swift

    public let section: String
  • The list of hidden metadata fields to return

    Declaration

    Swift

    public let hiddenFields: [String]?
  • The list of hidden facet fields to return

    Declaration

    Swift

    public let hiddenFacets: [String]?
  • The sort method/order for groups

    Declaration

    Swift

    public let groupsSortOption: CIOGroupsSortOption?
  • The pre filter expression used to refine results Please refer to our docs for the syntax on adding pre filter expressions: https://docs.constructor.com/reference/shared-filter-expressions

    Declaration

    Swift

    public let preFilterExpression: String?
  • The fmt_options to use with the result set Please refer to our docs for more information on available options: https://docs.constructor.com/reference/v1-search-get-search-results

    Declaration

    Swift

    public let fmtOptions: [FmtOption]?
  • Create a Search request query object

    Usage Example:

    let facetFilters = [(key: "Nutrition", value: "Organic"),
                        (key: "Nutrition", value: "Natural"),
                        (key: "Brand", value: "Kraft Foods")]
    
    let preFilterExpression = "{\"or\":[{\"and\":[{\"name\":\"group_id\",\"value\":\"electronics-group-id\"},{\"name\":\"Price\",\"range\":[\"-inf\",200.0]}]},{\"and\":[{\"name\":\"Type\",\"value\":\"Laptop\"},{\"not\":{\"name\":\"Price\",\"range\":[800.0,\"inf\"]}}]}]}"
    
    let variationsMap = CIOQueryVariationsMap(
       GroupBy: [GroupByOption(name: "Country", field: "data.Country")],
       Values: ["price": ValueOption(aggregation: "min", field: "data.price")],
       Dtype: "array"
    )
    
    let fmtOptions = [("groups_max_depth": "10")]
    
    let searchQuery = CIOSearchQuery(query: "red", filters: CIOQueryFilters(groupFilter: nil, facetFilters: facetFilters), page: 1, perPage: 30, section: "Products", hiddenFields: ["price_CA", "currency_CA"], hiddenFacets: ["brand", "price_CA"], variationsMap: variationsMap, preFilterExpression: preFilterExpression, fmtOptions: fmtOptions)
    

    Declaration

    Swift

    public init(query: String, filters: CIOQueryFilters? = nil, sortOption: CIOSortOption? = nil, page: Int? = nil, perPage: Int? = nil, section: String? = nil, hiddenFields: [String]? = nil, hiddenFacets: [String]? = nil, groupsSortOption: CIOGroupsSortOption? = nil, variationsMap: CIOQueryVariationsMap? = nil, preFilterExpression: String? = nil, fmtOptions: [FmtOption]? = nil)

    Parameters

    query

    The user typed query to return results for

    filters

    The filters used to refine results

    page

    The page number of the results

    perPage

    The number of results per page to return

    sortOption

    The sort method/order for results

    section

    The section to return results from

    hiddenFields

    The list of hidden metadata fields to return

    hiddenFacets

    The list of hidden facest to return

    groupsSortOption

    The sort method/order for groups

    preFilterExpression

    The pre filter expression used to refine results

    fmtOptions

    The fmt options to use with the result set