Module: Elasticsearch::FacetedSearch::FacetBase

Extended by:
ActiveSupport::Concern
Includes:
Pagination, Sortable
Defined in:
lib/elasticsearch/faceted_search/facet_base.rb

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Methods included from Sortable

#current_sort, #current_sort_for_search, #sorts

Methods included from Pagination

#current_page, #limit, #limit_value, #total_count, #total_pages

Instance Method Details

#class_facetsObject

Instance



76
77
78
# File 'lib/elasticsearch/faceted_search/facet_base.rb', line 76

def class_facets
  self.class.facets.dup
end

#facet_queryObject



102
103
104
# File 'lib/elasticsearch/faceted_search/facet_base.rb', line 102

def facet_query
  @facet_query ||= build_facets
end

#filter_queryObject



106
107
108
# File 'lib/elasticsearch/faceted_search/facet_base.rb', line 106

def filter_query
  @filter_query ||= build_filters
end

#queryObject



80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
# File 'lib/elasticsearch/faceted_search/facet_base.rb', line 80

def query
  q = {
    size: limit,
    from: ([current_page.to_i, 1].max - 1) * limit,
    sort: current_sort_for_search
  }

  # Filters
  q.merge!({
    :filter => {
      :and => filter_query
    }
  }) unless filter_query.blank?

  # Facets
  q.merge!({
    :facets => facet_query
  }) unless facet_query.blank?

  q.reject{|k,v| v.blank? }
end

#search_paramsObject



110
111
112
# File 'lib/elasticsearch/faceted_search/facet_base.rb', line 110

def search_params
  params
end