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 20 21 22 23 24 |
# File 'lib/jruby-elasticsearch/searchrequest.rb', line 14 def initialize(client) @client = client begin @prep = org.elasticsearch.client.action.search.SearchRequestBuilder.new(@client) rescue NameError # The 'client' namespace was removed in elasticsearch 0.19.0 @prep = org.elasticsearch.action.search.SearchRequestBuilder.new(@client) end @indeces = [] super() end |
Instance Method Details
#execute(&block) ⇒ Object
45 46 47 48 49 50 |
# File 'lib/jruby-elasticsearch/searchrequest.rb', line 45 def execute(&block) use_callback(&block) if block_given? @prep.setIndices(@indeces.to_java(:String)) action = @prep.execute(@handler) return action end |
#execute! ⇒ Object
55 56 57 58 |
# File 'lib/jruby-elasticsearch/searchrequest.rb', line 55 def execute! @prep.setIndices(@indeces.to_java(:String)) return @prep.execute.actionGet() end |
#from(from) ⇒ Object Also known as: offset
130 131 132 133 |
# File 'lib/jruby-elasticsearch/searchrequest.rb', line 130 def from(from) @prep.setFrom(from) return self end |
#histogram(field, interval, name = nil) ⇒ Object
95 96 97 98 99 100 101 102 103 104 105 106 |
# File 'lib/jruby-elasticsearch/searchrequest.rb', line 95 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
33 34 35 |
# File 'lib/jruby-elasticsearch/searchrequest.rb', line 33 def index(index_name) @indeces << index_name end |
#query(query_string, default_operator = :and) ⇒ Object
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/jruby-elasticsearch/searchrequest.rb', line 75 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
122 123 124 125 |
# File 'lib/jruby-elasticsearch/searchrequest.rb', line 122 def size(s) @prep.setSize(s) return self end |
#sort(field, order) ⇒ Object
61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/jruby-elasticsearch/searchrequest.rb', line 61 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
109 110 111 112 113 114 115 116 117 118 119 |
# File 'lib/jruby-elasticsearch/searchrequest.rb', line 109 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
27 28 29 30 |
# File 'lib/jruby-elasticsearch/searchrequest.rb', line 27 def with(&block) instance_eval(&block) return self end |