eson-core 0.7.0

Sign up to get free protection for your applications and to get access to all the features.
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