eson-core 0.7.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.
Files changed (51) hide show
  1. data/LICENSE.md +20 -0
  2. data/README.md +5 -0
  3. data/Rakefile +35 -0
  4. data/eson-core.gemspec +23 -0
  5. data/lib/eson/api.rb +63 -0
  6. data/lib/eson/chainable.rb +20 -0
  7. data/lib/eson/client.rb +253 -0
  8. data/lib/eson/error.rb +14 -0
  9. data/lib/eson/request.rb +113 -0
  10. data/lib/eson/shared/cluster/health.rb +16 -0
  11. data/lib/eson/shared/cluster/nodes.rb +15 -0
  12. data/lib/eson/shared/cluster/shutdown.rb +20 -0
  13. data/lib/eson/shared/cluster/state.rb +17 -0
  14. data/lib/eson/shared/cluster/stats.rb +15 -0
  15. data/lib/eson/shared/core/bulk.rb +26 -0
  16. data/lib/eson/shared/core/count.rb +63 -0
  17. data/lib/eson/shared/core/delete.rb +26 -0
  18. data/lib/eson/shared/core/delete_by_query.rb +50 -0
  19. data/lib/eson/shared/core/get.rb +19 -0
  20. data/lib/eson/shared/core/index.rb +33 -0
  21. data/lib/eson/shared/core/mget.rb +16 -0
  22. data/lib/eson/shared/core/more_like_this.rb +52 -0
  23. data/lib/eson/shared/core/msearch.rb +37 -0
  24. data/lib/eson/shared/core/percolate.rb +18 -0
  25. data/lib/eson/shared/core/search.rb +62 -0
  26. data/lib/eson/shared/core/simple_search.rb +35 -0
  27. data/lib/eson/shared/indices/aliases.rb +24 -0
  28. data/lib/eson/shared/indices/analyze.rb +11 -0
  29. data/lib/eson/shared/indices/clear_cache.rb +13 -0
  30. data/lib/eson/shared/indices/close_index.rb +9 -0
  31. data/lib/eson/shared/indices/create_index.rb +13 -0
  32. data/lib/eson/shared/indices/delete_index.rb +9 -0
  33. data/lib/eson/shared/indices/delete_mapping.rb +11 -0
  34. data/lib/eson/shared/indices/delete_template.rb +9 -0
  35. data/lib/eson/shared/indices/exists.rb +9 -0
  36. data/lib/eson/shared/indices/flush.rb +11 -0
  37. data/lib/eson/shared/indices/get_mapping.rb +16 -0
  38. data/lib/eson/shared/indices/get_settings.rb +9 -0
  39. data/lib/eson/shared/indices/get_template.rb +9 -0
  40. data/lib/eson/shared/indices/open_index.rb +9 -0
  41. data/lib/eson/shared/indices/optimize.rb +15 -0
  42. data/lib/eson/shared/indices/put_mapping.rb +15 -0
  43. data/lib/eson/shared/indices/put_template.rb +10 -0
  44. data/lib/eson/shared/indices/refresh.rb +16 -0
  45. data/lib/eson/shared/indices/segments.rb +8 -0
  46. data/lib/eson/shared/indices/snapshot.rb +9 -0
  47. data/lib/eson/shared/indices/stats.rb +19 -0
  48. data/lib/eson/shared/indices/status.rb +9 -0
  49. data/lib/eson/shared/indices/update_settings.rb +12 -0
  50. data/lib/eson-core.rb +49 -0
  51. metadata +135 -0
@@ -0,0 +1,63 @@
1
+ module Eson
2
+ module Shared
3
+ module Count
4
+ extend API
5
+
6
+ attr_accessor :type
7
+
8
+ multi_index true
9
+
10
+ source_param :query,
11
+ :timeout,
12
+ :from,
13
+ :size,
14
+ :sort,
15
+ :track_scores,
16
+ :highlight,
17
+ :fields,
18
+ :script_fields,
19
+ :facets,
20
+ :filter,
21
+ :indices_boost,
22
+ :explain,
23
+ :version,
24
+ :min_score
25
+
26
+ parameters :timeout,
27
+ :types,
28
+ :routing,
29
+ :query,
30
+ :from,
31
+ :size,
32
+ :search_type,
33
+ :sort,
34
+ :track_scores,
35
+ :highlight,
36
+ :fields,
37
+ :script_fields,
38
+ :preference,
39
+ :facets,
40
+ :filter,
41
+ :scroll,
42
+ :scroll_id,
43
+ :indices_boost,
44
+ :explain,
45
+ :version,
46
+ :min_score,
47
+ :q,
48
+ :df,
49
+ :analyzer
50
+
51
+ def types
52
+ if @types
53
+ Array(@types)
54
+ elsif type
55
+ Array(type)
56
+ else
57
+ []
58
+ end
59
+ end
60
+
61
+ end
62
+ end
63
+ end
@@ -0,0 +1,26 @@
1
+ module Eson
2
+ module Shared
3
+ module Delete
4
+ extend API
5
+
6
+ multi_index false
7
+
8
+ source_param :item
9
+
10
+ parameters(
11
+ :type,
12
+ :id,
13
+ :item,
14
+ :version,
15
+ :op_type,
16
+ :routing,
17
+ :parent,
18
+ :percolate,
19
+ :replication,
20
+ :consistency,
21
+ :refresh,
22
+ :timeout
23
+ )
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,50 @@
1
+ module Eson
2
+ module Shared
3
+ module DeleteByQuery
4
+ extend API
5
+
6
+ attr_accessor :type
7
+
8
+ multi_index true
9
+
10
+ source_param :query
11
+
12
+ # TODO: check the parameter list
13
+ parameters :timeout,
14
+ :types,
15
+ :routing,
16
+ :query,
17
+ :from,
18
+ :size,
19
+ :search_type,
20
+ :sort,
21
+ :track_scores,
22
+ :highlight,
23
+ :fields,
24
+ :script_fields,
25
+ :preference,
26
+ :facets,
27
+ :filter,
28
+ :scroll,
29
+ :scroll_id,
30
+ :indices_boost,
31
+ :explain,
32
+ :version,
33
+ :min_score,
34
+ :q,
35
+ :df,
36
+ :analyzer
37
+
38
+ def types
39
+ if @types
40
+ Array(@types)
41
+ elsif type
42
+ Array(type)
43
+ else
44
+ []
45
+ end
46
+ end
47
+
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,19 @@
1
+ module Eson
2
+ module Shared
3
+ module Get
4
+ extend API
5
+
6
+ multi_index false
7
+
8
+ parameters(
9
+ :id,
10
+ :type,
11
+ :fields,
12
+ :routing,
13
+ :preference,
14
+ :refresh
15
+ )
16
+
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,33 @@
1
+ module Eson
2
+ module Shared
3
+ module Index
4
+ extend API
5
+
6
+ multi_index false
7
+
8
+ source_param :doc
9
+
10
+ parameters(
11
+ :type,
12
+ :id,
13
+ :doc,
14
+ :version,
15
+ :op_type,
16
+ :routing,
17
+ :parent,
18
+ :percolate,
19
+ :replication,
20
+ :consistency,
21
+ :refresh,
22
+ :timeout
23
+ )
24
+
25
+ alias :document :doc
26
+
27
+ def item=(item)
28
+ warn("item= is deprecated and replaced by doc=")
29
+ self.doc = item
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,16 @@
1
+ module Eson
2
+ module Shared
3
+ module MultiGet
4
+ extend API
5
+
6
+ multi_index false
7
+
8
+ source_param :docs,
9
+ :ids
10
+
11
+ parameters :type,
12
+ :docs,
13
+ :ids
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,52 @@
1
+ module Eson
2
+ module Shared
3
+ module MoreLikeThis
4
+ extend API
5
+
6
+ multi_index false
7
+
8
+ parameters :id,
9
+ :type,
10
+ :mlt_fields,
11
+ :like_text,
12
+ :percent_terms_to_match,
13
+ :min_term_freq,
14
+ :max_query_terms,
15
+ :stop_words,
16
+ :min_doc_freq,
17
+ :max_doc_freq,
18
+ :min_word_len,
19
+ :max_word_len,
20
+ :boost_terms,
21
+ :boost,
22
+ :analyzer,
23
+ :scroll,
24
+ :scroll_id,
25
+ :timeout,
26
+ :from,
27
+ :size,
28
+ :sort,
29
+ :track_scores,
30
+ :highlight,
31
+ :fields,
32
+ :script_fields,
33
+ :indices_boost,
34
+ :explain,
35
+ :version,
36
+ :min_score
37
+
38
+ source_param :timeout,
39
+ :from,
40
+ :size,
41
+ :sort,
42
+ :track_scores,
43
+ :highlight,
44
+ :fields,
45
+ :script_fields,
46
+ :indices_boost,
47
+ :explain,
48
+ :version,
49
+ :min_score
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,37 @@
1
+ module Eson
2
+ module Shared
3
+ module MultiSearch
4
+ extend API
5
+
6
+ attr_accessor :type
7
+
8
+ multi_index true
9
+
10
+ source_param :msearch
11
+ parameters :msearch,
12
+ :types
13
+
14
+ def msearch
15
+ @msearch ||= []
16
+ end
17
+
18
+ def <<(request)
19
+ msearch << request
20
+ end
21
+
22
+ def search(args, immediate = true, &block)
23
+ self << client.search(args, false, &block)
24
+ end
25
+
26
+ def types
27
+ if @types
28
+ Array(@types)
29
+ elsif type
30
+ Array(type)
31
+ else
32
+ []
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,18 @@
1
+ module Eson
2
+ module Shared
3
+ module Percolate
4
+ extend API
5
+
6
+ multi_index false
7
+
8
+ parameters :query,
9
+ :doc,
10
+ :prefer_local,
11
+ :type,
12
+ :index
13
+
14
+ source_param :doc, :query
15
+
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,62 @@
1
+ module Eson
2
+ module Shared
3
+ module Search
4
+ extend API
5
+
6
+ attr_accessor :type
7
+
8
+ multi_index true
9
+
10
+ source_param :query,
11
+ :timeout,
12
+ :from,
13
+ :size,
14
+ :sort,
15
+ :track_scores,
16
+ :highlight,
17
+ :fields,
18
+ :script_fields,
19
+ :facets,
20
+ :filter,
21
+ :indices_boost,
22
+ :explain,
23
+ :version,
24
+ :min_score
25
+
26
+ parameters :timeout,
27
+ :types,
28
+ :routing,
29
+ :query,
30
+ :from,
31
+ :size,
32
+ :search_type,
33
+ :sort,
34
+ :track_scores,
35
+ :highlight,
36
+ :fields,
37
+ :script_fields,
38
+ :preference,
39
+ :facets,
40
+ :filter,
41
+ :scroll,
42
+ :scroll_id,
43
+ :indices_boost,
44
+ :explain,
45
+ :version,
46
+ :min_score,
47
+ :q,
48
+ :df,
49
+ :analyzer
50
+
51
+ def types
52
+ if @types
53
+ Array(@types)
54
+ elsif type
55
+ Array(type)
56
+ else
57
+ []
58
+ end
59
+ end
60
+ end
61
+ end
62
+ end
@@ -0,0 +1,35 @@
1
+ module Eson
2
+ module Shared
3
+ module SimpleSearch
4
+ extend API
5
+
6
+ multi_index true
7
+
8
+ attr_accessor :type
9
+
10
+ parameters :timeout,
11
+ :types,
12
+ :q,
13
+ :routing,
14
+ :df,
15
+ :analyzer,
16
+ :fields,
17
+ :sort,
18
+ :track_scores,
19
+ :timeout,
20
+ :from,
21
+ :size,
22
+ :search_type
23
+
24
+ def types
25
+ if @types
26
+ Array(@types)
27
+ elsif type
28
+ Array(type)
29
+ else
30
+ []
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,24 @@
1
+ module Eson
2
+ module Shared
3
+ module Aliases
4
+ extend API
5
+
6
+ no_indices true
7
+
8
+ parameters :actions
9
+ source_param [:actions]
10
+
11
+ def add(index, aka)
12
+ actions << {"add" => { "index" => index, "alias" => aka}}
13
+ end
14
+
15
+ def remove(index, aka)
16
+ actions << {"remove" => { "index" => index, "alias" => aka}}
17
+ end
18
+
19
+ def actions
20
+ @actions ||= []
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,11 @@
1
+ module Eson
2
+ module Shared
3
+ module Analyze
4
+ extend API
5
+
6
+ multi_index false
7
+
8
+ attr_accessor :text, :analyzer, :format
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,13 @@
1
+ module Eson
2
+ module Shared
3
+ module ClearCache
4
+ extend API
5
+
6
+ multi_index true
7
+
8
+ parameters :filter,
9
+ :field_data,
10
+ :bloom
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,9 @@
1
+ module Eson
2
+ module Shared
3
+ module CloseIndex
4
+ extend API
5
+
6
+ multi_index true
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,13 @@
1
+ module Eson
2
+ module Shared
3
+ module CreateIndex
4
+ extend API
5
+
6
+ multi_index false
7
+
8
+ parameters :settings, :mappings
9
+
10
+ source_param :settings, :mappings
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,9 @@
1
+ module Eson
2
+ module Shared
3
+ module DeleteIndex
4
+ extend API
5
+
6
+ multi_index true
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,11 @@
1
+ module Eson
2
+ module Shared
3
+ module DeleteMapping
4
+ extend API
5
+
6
+ parameters :type
7
+
8
+ multi_index true
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,9 @@
1
+ module Eson
2
+ module Shared
3
+ module DeleteTemplate
4
+ extend API
5
+
6
+ parameters :name
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module Eson
2
+ module Shared
3
+ module IndexExists
4
+ extend API
5
+
6
+ multi_index true
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,11 @@
1
+ module Eson
2
+ module Shared
3
+ module Flush
4
+ extend API
5
+
6
+ parameters :refresh
7
+
8
+ multi_index true
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,16 @@
1
+ module Eson
2
+ module Shared
3
+ module GetMapping
4
+ extend API
5
+
6
+ attr_accessor :type
7
+ parameters :types
8
+
9
+ multi_index true
10
+
11
+ def types
12
+ @types || Array(@type)
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,9 @@
1
+ module Eson
2
+ module Shared
3
+ module GetSettings
4
+ extend API
5
+
6
+ multi_index true
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module Eson
2
+ module Shared
3
+ module GetTemplate
4
+ extend API
5
+
6
+ parameters :name
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,9 @@
1
+ module Eson
2
+ module Shared
3
+ module OpenIndex
4
+ extend API
5
+
6
+ multi_index true
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,15 @@
1
+ module Eson
2
+ module Shared
3
+ module Optimize
4
+ extend API
5
+
6
+ multi_index true
7
+
8
+ parameters :max_num_segments,
9
+ :only_expunge_deletes,
10
+ :refresh,
11
+ :flush,
12
+ :wait_for_merge
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module Eson
2
+ module Shared
3
+ module PutMapping
4
+ extend API
5
+
6
+ multi_index true
7
+
8
+ parameters :type,
9
+ :ignore_conflicts,
10
+ :mapping
11
+
12
+ source_param :mapping
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,10 @@
1
+ module Eson
2
+ module Shared
3
+ module PutTemplate
4
+ extend API
5
+
6
+ parameters :template, :settings, :mappings, :name
7
+ source_param :template, :settings, :mappings
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,16 @@
1
+ module Eson
2
+ module Shared
3
+ module Refresh
4
+ extend API
5
+
6
+ multi_index true
7
+
8
+ parameters :max_num_segments,
9
+ :only_expunge_deletes,
10
+ :refresh,
11
+ :flush,
12
+ :wait_for_merge
13
+
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,8 @@
1
+ module Eson
2
+ module Shared
3
+ module Segments
4
+ extend API
5
+ multi_index true
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,9 @@
1
+ module Eson
2
+ module Shared
3
+ module Snapshot
4
+ extend API
5
+
6
+ multi_index true
7
+ end
8
+ end
9
+ end