Class: ElasticSearch::SearchRequest
- Defined in:
- lib/jruby-elasticsearch/searchrequest.rb
Instance Method Summary collapse
- #execute(&block) ⇒ Object
- #execute! ⇒ Object
- #from(from) ⇒ Object (also: #offset)
- #histogram(field, interval, name = nil) ⇒ Object
- #index(index_name) ⇒ Object
-
#initialize(client) ⇒ SearchRequest
constructor
A new instance of SearchRequest.
- #query(query_string, default_operator = :and) ⇒ Object
- #size(s) ⇒ Object (also: #count, #limit)
- #sort(field, order) ⇒ Object
- #terms(field, name = nil) ⇒ Object
- #with(&block) ⇒ Object
Methods inherited from Request
Constructor Details
#initialize(client) ⇒ SearchRequest
Returns a new instance of SearchRequest.
14 15 16 17 18 19 |
# File 'lib/jruby-elasticsearch/searchrequest.rb', line 14 def initialize(client) @client = client @prep = org.elasticsearch.client.action.search.SearchRequestBuilder.new(@client) @indeces = [] super() end |
Instance Method Details
#execute(&block) ⇒ Object
40 41 42 43 44 45 |
# File 'lib/jruby-elasticsearch/searchrequest.rb', line 40 def execute(&block) use_callback(&block) if block_given? @prep.setIndices(@indeces.to_java(:String)) action = @prep.execute(@handler) return action end |
#execute! ⇒ Object
50 51 52 53 |
# File 'lib/jruby-elasticsearch/searchrequest.rb', line 50 def execute! @prep.setIndices(@indeces.to_java(:String)) return @prep.execute.actionGet() end |
#from(from) ⇒ Object Also known as: offset
125 126 127 128 |
# File 'lib/jruby-elasticsearch/searchrequest.rb', line 125 def from(from) @prep.setFrom(from) return self end |
#histogram(field, interval, name = nil) ⇒ Object
90 91 92 93 94 95 96 97 98 99 100 101 |
# File 'lib/jruby-elasticsearch/searchrequest.rb', line 90 def histogram(field, interval, name=nil) if name.nil? # TODO(sissel): How do we expose the name of the histogram? name = "#{field}_#{interval}" end # TODO(sissel): Support 'global' ? builder = org.elasticsearch.search.facet.histogram.HistogramFacetBuilder.new(name) builder.field(field) builder.interval(interval) @prep.addFacet(builder) return self end |
#index(index_name) ⇒ Object
28 29 30 |
# File 'lib/jruby-elasticsearch/searchrequest.rb', line 28 def index(index_name) @indeces << index_name end |
#query(query_string, default_operator = :and) ⇒ Object
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
# File 'lib/jruby-elasticsearch/searchrequest.rb', line 70 def query(query_string, default_operator=:and) # TODO(sissel): allow doing other queries and such. qbuilder = QueryStringQueryBuilder.new(query_string) operator = QueryStringQueryBuilder::Operator case default_operator when :and qbuilder.defaultOperator(operator::AND) when :or qbuilder.defaultOperator(operator::OR) else raise "Unknown default operator '#{default_operator.inspect}'" end @prep.setQuery(qbuilder) return self end |
#size(s) ⇒ Object Also known as: count, limit
117 118 119 120 |
# File 'lib/jruby-elasticsearch/searchrequest.rb', line 117 def size(s) @prep.setSize(s) return self end |
#sort(field, order) ⇒ Object
56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'lib/jruby-elasticsearch/searchrequest.rb', line 56 def sort(field, order) case order when :asc order_val = org.elasticsearch.search.sort.SortOrder::ASC when :desc order_val = org.elasticsearch.search.sort.SortOrder::DESC else raise "Invalid sort order '#{order.inspect}'" end @prep.addSort(field, order_val) return self end |
#terms(field, name = nil) ⇒ Object
104 105 106 107 108 109 110 111 112 113 114 |
# File 'lib/jruby-elasticsearch/searchrequest.rb', line 104 def terms(field, name=nil) if name.nil? # TODO(sissel): How do we expose the name of the histogram? name = field end # TODO(sissel): Support 'global' ? builder = org.elasticsearch.search.facet.terms.TermsFacetBuilder.new(name) builder.field(field) @prep.addFacet(builder) return self end |
#with(&block) ⇒ Object
22 23 24 25 |
# File 'lib/jruby-elasticsearch/searchrequest.rb', line 22 def with(&block) instance_eval(&block) return self end |