Sha256: 3a352d90fbbbd347072c16cd4842d24a580ae0591bb71d59d1b40514412dfda3

Contents?: true

Size: 1.06 KB

Versions: 3

Compression:

Stored size: 1.06 KB

Contents

module Gummi
  module Document
    module Search
      class Filtered
        include Gummi::Document::Search::Searching

        attribute :query_string,  Gummi::Fields::SanitizedString
        attribute :terms,         Array[Hash],                    default: []
        attribute :query_filters, Array[Hash],                    default: []
        attribute :facets,        Hash,                           default: {}

        def to_client_args
          args = {}
          args[:index] = index
          args[:type]  = type if type
          args[:from]  = from
          args[:body]  = {query: filtered, facets: facets }
          args
        end

        def query
          {query_string: { query: query_string}} if query_string.present?
        end

        def filtered
          { 'filtered' => { 'query' => query, 'filter' => process_query_filters }}
        end

        def process_query_filters
          if query_filters.length > 1
            {and: query_filters}
          else
            query_filters.first
          end
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
gummi-0.0.9 lib/gummi/document/search/filtered.rb
gummi-0.0.8 lib/gummi/document/search/filtered.rb
gummi-0.0.7 lib/gummi/document/search/filtered.rb