arelastic 0.1.3 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,8 +6,8 @@ module Arelastic
6
6
  new(field)
7
7
  end
8
8
 
9
- def constant_score(filter_or_query)
10
- query Arelastic::Queries::ConstantScore.new(filter_or_query)
9
+ def constant_score(search)
10
+ query Arelastic::Queries::ConstantScore.new(search)
11
11
  end
12
12
 
13
13
  def filtered(query, filter)
@@ -3,6 +3,7 @@ require 'arelastic/filters/filter'
3
3
  require 'arelastic/filters/and'
4
4
  require 'arelastic/filters/exists'
5
5
  require 'arelastic/filters/geo_distance'
6
+ require 'arelastic/filters/has_child'
6
7
  require 'arelastic/filters/ids'
7
8
  require 'arelastic/filters/limit'
8
9
  require 'arelastic/filters/match_all'
@@ -0,0 +1,21 @@
1
+ module Arelastic
2
+ module Filters
3
+ class HasChild < Arelastic::Filters::Filter
4
+ attr_reader :type, :query
5
+
6
+ def initialize type, query
7
+ @type = type
8
+ @query = query
9
+ end
10
+
11
+ def as_elastic
12
+ {
13
+ "has_child" => {
14
+ "type" => type,
15
+ "query" => convert_to_elastic(query)
16
+ }
17
+ }
18
+ end
19
+ end
20
+ end
21
+ end
@@ -8,7 +8,12 @@ module Arelastic
8
8
  end
9
9
 
10
10
  def as_elastic
11
- { "filtered" => Arelastic::Nodes::HashGroup.new([query, filter]).as_elastic }
11
+ {
12
+ "filtered" => {
13
+ "query" => convert_to_elastic(query),
14
+ "filter" => convert_to_elastic(filter)
15
+ }
16
+ }
12
17
  end
13
18
  end
14
19
  end
@@ -9,8 +9,8 @@ class Arelastic::Builders::QueryTest < MiniTest::Spec
9
9
  end
10
10
 
11
11
  def test_filtered
12
- query = Arelastic::Builders::Query.filtered({"query" => "foo"}, {"filter" => "bar"})
13
- expected = {"query" => {"filtered" => {"query" => "foo", "filter" => "bar"}}}
12
+ query = Arelastic::Builders::Query.filtered({"query_string" => "foo"}, {"term" => "bar"})
13
+ expected = {"query" => {"filtered" => {"query" => {"query_string" => "foo"}, "filter" => {"term" => "bar"}}}}
14
14
 
15
15
  assert_equal expected, query.as_elastic
16
16
  end
@@ -0,0 +1,9 @@
1
+ require 'helper'
2
+
3
+ class Arelastic::Filters::HasChildTest < MiniTest::Spec
4
+ def test_as_elastic
5
+ expected = {"has_child" => {"type" => "comment", "query" => {"query_string" => "lol"}}}
6
+
7
+ assert_equal expected, Arelastic::Filters::HasChild.new("comment", {"query_string" => "lol"}).as_elastic
8
+ end
9
+ end
@@ -2,8 +2,8 @@ require 'helper'
2
2
 
3
3
  class Arelastic::Queries::FilteredTest < MiniTest::Spec
4
4
  def test_as_elastic
5
- filtered = Arelastic::Queries::Filtered.new({"query" => "bar"}, {"filter" => "baz"})
6
- expected = {"filtered" => {"query" => "bar", "filter" => "baz"}}
5
+ filtered = Arelastic::Queries::Filtered.new({"query_string" => "bar"}, {"term" => "baz"})
6
+ expected = {"filtered" => {"query" => {"query_string" => "bar"}, "filter" => {"term" => "baz"}}}
7
7
 
8
8
  assert_equal expected, filtered.as_elastic
9
9
  end
@@ -1,5 +1,6 @@
1
1
  require 'helper'
2
2
 
3
3
  class Arelastic::Queries::QueryTest < MiniTest::Spec
4
-
4
+ def test_as_elastic
5
+ end
5
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: arelastic
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-01 00:00:00.000000000 Z
12
+ date: 2012-10-16 00:00:00.000000000 Z
13
13
  dependencies: []
14
14
  description: Build Elastic Search queries with objects
15
15
  email: developer@matthewhiggins.com
@@ -37,6 +37,7 @@ files:
37
37
  - lib/arelastic/filters/exists.rb
38
38
  - lib/arelastic/filters/filter.rb
39
39
  - lib/arelastic/filters/geo_distance.rb
40
+ - lib/arelastic/filters/has_child.rb
40
41
  - lib/arelastic/filters/ids.rb
41
42
  - lib/arelastic/filters/limit.rb
42
43
  - lib/arelastic/filters/match_all.rb
@@ -85,6 +86,7 @@ files:
85
86
  - test/arelastic/filters/exists_test.rb
86
87
  - test/arelastic/filters/filter_test.rb
87
88
  - test/arelastic/filters/geo_distance_test.rb
89
+ - test/arelastic/filters/has_child_test.rb
88
90
  - test/arelastic/filters/ids_test.rb
89
91
  - test/arelastic/filters/match_all_test.rb
90
92
  - test/arelastic/filters/match_test.rb