class Solr::Query::Request

Attributes

boosting[RW]
debug_mode[RW]
facets[RW]
field_list[RW]
filters[RW]
grouping[W]
limit_docs_by_field[RW]
phrase_slop[RW]
query_fields[RW]
query_operator[RW]
search_term[R]
sorting[W]
spellcheck[RW]

Public Class Methods

new(search_term:, query_fields: [], field_list: Solr::Query::Request::FieldList.new, filters: []) click to toggle source
# File lib/solr/query/request.rb, line 26
def initialize(search_term:, query_fields: [], field_list: Solr::Query::Request::FieldList.new, filters: [])
  @search_term = search_term
  @query_fields = query_fields
  @field_list = field_list
  @filters = filters
end

Public Instance Methods

grouping() click to toggle source
# File lib/solr/query/request.rb, line 40
def grouping
  @grouping ||= Solr::Query::Request::Grouping.none
end
run(page: nil, start: nil, rows: nil, page_size: nil, runner_options: {}) click to toggle source
# File lib/solr/query/request.rb, line 33
def run(page: nil, start: nil, rows: nil, page_size: nil, runner_options: {})
  rows ||= page_size
  return run_paged(page: page, page_size: rows, runner_options: runner_options) if page && rows
  return run_start(start: start, rows: rows, runner_options: runner_options) if start && rows
  raise ArgumentError, 'You must specify either page/rows or start/rows arguments'
end
sorting() click to toggle source
# File lib/solr/query/request.rb, line 44
def sorting
  @sorting ||= Solr::Query::Request::Sorting.none
end
to_h() click to toggle source
# File lib/solr/query/request.rb, line 48
def to_h
  Solr::Query::Request::EdismaxAdapter.new(self).to_h
end

Private Instance Methods

run_paged(page: 1, page_size: 10, runner_options:) click to toggle source
# File lib/solr/query/request.rb, line 54
def run_paged(page: 1, page_size: 10, runner_options:)
  start_page = page.to_i - 1
  start_page = start_page < 1 ? 0 : start_page
  start = start_page * page_size

  Solr::Query::Handler.call(query: self, start: start, rows: page_size, runner_options: runner_options)
end
run_start(rows: 10, start: 0, runner_options:) click to toggle source
# File lib/solr/query/request.rb, line 62
def run_start(rows: 10, start: 0, runner_options:)
  Solr::Query::Handler.call(query: self, start: start, rows: rows, runner_options: runner_options)
end