elastic-enterprise-search 7.17.1 → 8.0.0.pre

Sign up to get free protection for your applications and to get access to all the features.
Files changed (158) hide show
  1. checksums.yaml +4 -4
  2. data/.ci/jobs/elastic+enterprise-search-ruby+7.13.yml +12 -0
  3. data/.ci/jobs/elastic+enterprise-search-ruby+7.14.yml +12 -0
  4. data/.ci/jobs/elastic+enterprise-search-ruby+7.15.yml +12 -0
  5. data/.ci/jobs/elastic+enterprise-search-ruby+7.16.yml +12 -0
  6. data/.ci/test-matrix.yml +1 -2
  7. data/.github/workflows/testing.yml +3 -3
  8. data/.rubocop.yml +1 -1
  9. data/README.md +1 -1
  10. data/docs/guide/app-search-api.asciidoc +15 -9
  11. data/docs/guide/overview.asciidoc +2 -2
  12. data/docs/guide/release_notes/712.asciidoc +10 -0
  13. data/docs/guide/release_notes/714.asciidoc +0 -12
  14. data/docs/guide/release_notes/715.asciidoc +0 -12
  15. data/docs/guide/release_notes/717.asciidoc +0 -12
  16. data/docs/guide/release_notes/80.asciidoc +14 -0
  17. data/docs/guide/release_notes/index.asciidoc +7 -0
  18. data/docs/guide/workplace-search-api.asciidoc +0 -3
  19. data/elastic-enterprise-search.gemspec +3 -3
  20. data/lib/elastic/api/response.rb +52 -0
  21. data/lib/elastic/{workplace-search/api/user_permissions.rb → app-search/api/adaptive_relevance_settings.rb} +10 -15
  22. data/lib/elastic/{workplace-search/api/add_user_permissions.rb → app-search/api/adaptive_relevance_suggestions.rb} +20 -14
  23. data/lib/elastic/app-search/api/add_meta_engine_source.rb +4 -5
  24. data/lib/elastic/app-search/api/api_key.rb +4 -6
  25. data/lib/elastic/app-search/api/api_logs.rb +8 -15
  26. data/lib/elastic/app-search/api/count_analytics.rb +5 -5
  27. data/lib/elastic/app-search/api/crawler_active_crawl_request.rb +4 -7
  28. data/lib/elastic/app-search/api/crawler_crawl_request.rb +6 -8
  29. data/lib/elastic/app-search/api/crawler_crawl_schedule.rb +4 -7
  30. data/lib/elastic/app-search/api/crawler_domain.rb +6 -8
  31. data/lib/elastic/app-search/api/crawler_domain_validation_result.rb +6 -5
  32. data/lib/elastic/app-search/api/crawler_metrics.rb +3 -6
  33. data/lib/elastic/app-search/api/crawler_overview.rb +4 -7
  34. data/lib/elastic/app-search/api/crawler_process_crawl.rb +6 -8
  35. data/lib/elastic/app-search/api/crawler_process_crawl_denied_urls.rb +6 -8
  36. data/lib/elastic/app-search/api/crawler_url_extraction_result.rb +6 -6
  37. data/lib/elastic/app-search/api/crawler_url_tracing_result.rb +7 -7
  38. data/lib/elastic/app-search/api/crawler_url_validation_result.rb +7 -7
  39. data/lib/elastic/app-search/api/crawler_user_agent.rb +3 -6
  40. data/lib/elastic/app-search/api/create_api_key.rb +10 -10
  41. data/lib/elastic/app-search/api/create_crawler_crawl_request.rb +9 -5
  42. data/lib/elastic/app-search/api/create_crawler_crawl_rule.rb +13 -11
  43. data/lib/elastic/app-search/api/create_crawler_domain.rb +8 -8
  44. data/lib/elastic/app-search/api/create_crawler_entry_point.rb +10 -8
  45. data/lib/elastic/app-search/api/create_crawler_process_crawl.rb +6 -6
  46. data/lib/elastic/app-search/api/create_crawler_sitemap.rb +10 -8
  47. data/lib/elastic/app-search/api/create_curation.rb +10 -8
  48. data/lib/elastic/app-search/api/create_engine.rb +8 -7
  49. data/lib/elastic/app-search/api/create_synonym_set.rb +6 -6
  50. data/lib/elastic/app-search/api/curation.rb +5 -7
  51. data/lib/elastic/app-search/api/delete_api_key.rb +4 -6
  52. data/lib/elastic/app-search/api/delete_crawler_active_crawl_request.rb +4 -7
  53. data/lib/elastic/app-search/api/delete_crawler_crawl_rule.rb +7 -9
  54. data/lib/elastic/app-search/api/delete_crawler_crawl_schedule.rb +4 -7
  55. data/lib/elastic/app-search/api/delete_crawler_domain.rb +6 -8
  56. data/lib/elastic/app-search/api/delete_crawler_entry_point.rb +7 -9
  57. data/lib/elastic/app-search/api/delete_crawler_sitemap.rb +7 -9
  58. data/lib/elastic/app-search/api/delete_curation.rb +5 -7
  59. data/lib/elastic/app-search/api/delete_documents.rb +4 -5
  60. data/lib/elastic/app-search/api/delete_engine.rb +3 -6
  61. data/lib/elastic/app-search/api/delete_meta_engine_source.rb +4 -4
  62. data/lib/elastic/app-search/api/delete_synonym_set.rb +5 -7
  63. data/lib/elastic/app-search/api/documents.rb +5 -5
  64. data/lib/elastic/app-search/api/engine.rb +3 -6
  65. data/lib/elastic/app-search/api/index_documents.rb +4 -5
  66. data/lib/elastic/{workplace-search/api/remove_user_permissions.rb → app-search/api/list_adaptive_relevance_suggestions.rb} +13 -14
  67. data/lib/elastic/app-search/api/list_api_keys.rb +2 -5
  68. data/lib/elastic/app-search/api/list_crawler_crawl_requests.rb +6 -8
  69. data/lib/elastic/{workplace-search/api/list_permissions.rb → app-search/api/list_crawler_domains.rb} +12 -13
  70. data/lib/elastic/app-search/api/list_crawler_process_crawls.rb +6 -7
  71. data/lib/elastic/app-search/api/list_curations.rb +3 -6
  72. data/lib/elastic/app-search/api/list_documents.rb +3 -6
  73. data/lib/elastic/app-search/api/list_engines.rb +2 -5
  74. data/lib/elastic/app-search/api/list_synonym_sets.rb +3 -6
  75. data/lib/elastic/app-search/api/log_clickthrough.rb +9 -8
  76. data/lib/elastic/{workplace-search/api/put_user_permissions.rb → app-search/api/put_adaptive_relevance_settings.rb} +13 -14
  77. data/lib/elastic/app-search/api/put_adaptive_relevance_suggestions.rb +51 -0
  78. data/lib/elastic/app-search/api/put_api_key.rb +11 -10
  79. data/lib/elastic/app-search/api/put_crawler_crawl_rule.rb +14 -12
  80. data/lib/elastic/app-search/api/put_crawler_crawl_schedule.rb +8 -7
  81. data/lib/elastic/app-search/api/put_crawler_domain.rb +9 -9
  82. data/lib/elastic/app-search/api/put_crawler_entry_point.rb +11 -9
  83. data/lib/elastic/app-search/api/put_crawler_sitemap.rb +11 -9
  84. data/lib/elastic/app-search/api/put_curation.rb +11 -9
  85. data/lib/elastic/app-search/api/put_documents.rb +4 -4
  86. data/lib/elastic/app-search/api/put_schema.rb +4 -4
  87. data/lib/elastic/app-search/api/put_search_settings.rb +6 -6
  88. data/lib/elastic/app-search/api/put_synonym_set.rb +8 -8
  89. data/lib/elastic/app-search/api/query_suggestion.rb +5 -5
  90. data/lib/elastic/app-search/api/refresh_adaptive_relevance_update_process.rb +56 -0
  91. data/lib/elastic/app-search/api/reset_search_settings.rb +3 -6
  92. data/lib/elastic/app-search/api/schema.rb +3 -6
  93. data/lib/elastic/app-search/api/search.rb +6 -5
  94. data/lib/elastic/app-search/api/search_settings.rb +3 -6
  95. data/lib/elastic/app-search/api/synonym_set.rb +5 -7
  96. data/lib/elastic/app-search/api/top_clicks_analytics.rb +5 -5
  97. data/lib/elastic/app-search/api/top_queries_analytics.rb +4 -4
  98. data/lib/elastic/enterprise-search/api/health.rb +2 -3
  99. data/lib/elastic/enterprise-search/api/put_read_only.rb +6 -4
  100. data/lib/elastic/enterprise-search/api/read_only.rb +2 -3
  101. data/lib/elastic/enterprise-search/api/stats.rb +2 -3
  102. data/lib/elastic/enterprise-search/api/version.rb +2 -3
  103. data/lib/elastic/enterprise-search/client.rb +2 -13
  104. data/lib/elastic/enterprise-search/request.rb +6 -4
  105. data/lib/elastic/enterprise-search/version.rb +1 -1
  106. data/lib/elastic/workplace-search/api/auto_query_refinement_details.rb +3 -4
  107. data/lib/elastic/workplace-search/api/command_sync_jobs.rb +4 -5
  108. data/lib/elastic/workplace-search/api/content_source.rb +3 -4
  109. data/lib/elastic/workplace-search/api/create_analytics_event.rb +16 -12
  110. data/lib/elastic/workplace-search/api/create_batch_synonym_sets.rb +4 -3
  111. data/lib/elastic/workplace-search/api/create_content_source.rb +6 -5
  112. data/lib/elastic/workplace-search/api/create_external_identity.rb +11 -6
  113. data/lib/elastic/workplace-search/api/current_user.rb +3 -5
  114. data/lib/elastic/workplace-search/api/delete_content_source.rb +3 -4
  115. data/lib/elastic/workplace-search/api/delete_documents.rb +4 -4
  116. data/lib/elastic/workplace-search/api/delete_documents_by_query.rb +4 -3
  117. data/lib/elastic/workplace-search/api/delete_external_identity.rb +7 -9
  118. data/lib/elastic/workplace-search/api/delete_synonym_set.rb +3 -5
  119. data/lib/elastic/workplace-search/api/document.rb +4 -6
  120. data/lib/elastic/workplace-search/api/external_identity.rb +7 -9
  121. data/lib/elastic/workplace-search/api/index_documents.rb +3 -4
  122. data/lib/elastic/workplace-search/api/list_content_sources.rb +2 -3
  123. data/lib/elastic/workplace-search/api/list_documents.rb +4 -5
  124. data/lib/elastic/workplace-search/api/list_external_identities.rb +3 -4
  125. data/lib/elastic/workplace-search/api/list_synonym_sets.rb +1 -2
  126. data/lib/elastic/workplace-search/api/put_content_source.rb +6 -6
  127. data/lib/elastic/workplace-search/api/put_content_source_icons.rb +6 -6
  128. data/lib/elastic/workplace-search/api/put_external_identity.rb +11 -10
  129. data/lib/elastic/workplace-search/api/put_synonym_set.rb +4 -4
  130. data/lib/elastic/workplace-search/api/put_triggers_blocklist.rb +3 -5
  131. data/lib/elastic/workplace-search/api/search.rb +13 -13
  132. data/lib/elastic/workplace-search/api/synonym_set.rb +3 -5
  133. data/lib/elastic/workplace-search/api/triggers_blocklist.rb +3 -3
  134. data/spec/enterprise-search/request_spec.rb +1 -1
  135. data/spec/fixtures/vcr/workplace_search/create_analytics_event.yml +1 -1
  136. data/spec/fixtures/vcr/workplace_search/oauth_request_token.yml +1 -1
  137. data/spec/fixtures/vcr/workplace_search/search_request.yml +1 -1
  138. data/spec/integration/app-search/adaptive_relevance_settings_spec.rb +60 -0
  139. data/spec/integration/app-search/adaptive_relevance_suggestions_spec.rb +54 -0
  140. data/spec/integration/app-search/api_logs_spec.rb +11 -3
  141. data/spec/integration/app-search/app_search_helper.rb +2 -2
  142. data/spec/integration/app-search/count_analytics_spec.rb +3 -2
  143. data/spec/integration/app-search/crawler_domain_spec.rb +16 -0
  144. data/spec/integration/app-search/curations_spec.rb +15 -9
  145. data/spec/integration/app-search/engines_spec.rb +24 -26
  146. data/spec/integration/app-search/log_clickthrough_spec.rb +1 -1
  147. data/spec/integration/app-search/meta_engines_spec.rb +5 -5
  148. data/spec/integration/app-search/search_and_multiple_search_spec.rb +1 -1
  149. data/spec/integration/workplace-search/content_sources_spec.rb +6 -6
  150. data/spec/integration/workplace-search/documents_spec.rb +20 -10
  151. data/spec/integration/workplace-search/external_identities_spec.rb +26 -16
  152. data/spec/integration/workplace-search/triggers_spec.rb +2 -2
  153. data/spec/integration/workplace-search/users_spec.rb +0 -6
  154. metadata +28 -22
  155. data/.ci/jobs/elastic+enterprise-search-ruby+7.10.0.beta.1.yml +0 -12
  156. data/.github/compatibility/Gemfile +0 -23
  157. data/.github/workflows/compatibility.yml +0 -20
  158. data/spec/integration/workplace-search/permissions_spec.rb +0 -77
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 20d5dc58d956de95e2aa7d0723236fddf174fdbf17bb59685609a3cbeb3115cf
4
- data.tar.gz: f343bdbeb2448f5a77750a1bf1f28e54152e56662ce490633e5bd49232695230
3
+ metadata.gz: 934f9963f52322f3ebfe4d938047fda1ab1bde21295bc48e9ff395fd04552b63
4
+ data.tar.gz: 93ee0ede64ccefd718b271ff50b179c2bf47cb531b5a9a09dd4ac9a06d32b803
5
5
  SHA512:
6
- metadata.gz: b7dc1bce350ac51b2061bd1d85037b51d884a31b558aa8d4164a98d4eb18d7d403558029719037f824358788466ad14a050d2c799532fc7505f2d64dc681fb4c
7
- data.tar.gz: d5c0604ace9a80dd05c3ec1f0b04d6ef0f48aebda33727632ce01d1a3ce7b217cec72d044b9dd3344ba7f160d4350991f4c61b29b875c0c6c3feff0394bc5048
6
+ metadata.gz: e762a601ada260c8a919af6bb65de7c48142200c585b55bf017e411272a3b653a9bb102ee79573eb3912aee96ea7511be4d51ad031ddb5112ad33e5ce396aca4
7
+ data.tar.gz: f8c8e04a2b3945a5e93f372beebd466ab4012625d0eea98132c2b2b89295e8bc3b84e99cfb1b0ec919b437b3244b2a7de9dcdca6149887940eb81c190d592514
@@ -0,0 +1,12 @@
1
+ ---
2
+ - job:
3
+ name: elastic+enterprise-search-ruby+7.13
4
+ display-name: 'elastic / enterprise-search-ruby # 7.13'
5
+ description: Testing the enterprise-search-ruby 7.13 branch.
6
+ junit_results: "*-junit.xml"
7
+ parameters:
8
+ - string:
9
+ name: branch_specifier
10
+ default: refs/heads/7.13
11
+ description: the Git branch specifier to build (<branchName>, <tagName>,
12
+ <commitId>, etc.)
@@ -0,0 +1,12 @@
1
+ ---
2
+ - job:
3
+ name: elastic+enterprise-search-ruby+7.14
4
+ display-name: 'elastic / enterprise-search-ruby # 7.14'
5
+ description: Testing the enterprise-search-ruby 7.14 branch.
6
+ junit_results: "*-junit.xml"
7
+ parameters:
8
+ - string:
9
+ name: branch_specifier
10
+ default: refs/heads/7.14
11
+ description: the Git branch specifier to build (<branchName>, <tagName>,
12
+ <commitId>, etc.)
@@ -0,0 +1,12 @@
1
+ ---
2
+ - job:
3
+ name: elastic+enterprise-search-ruby+7.15
4
+ display-name: 'elastic / enterprise-search-ruby # 7.15'
5
+ description: Testing the enterprise-search-ruby 7.15 branch.
6
+ junit_results: "*-junit.xml"
7
+ parameters:
8
+ - string:
9
+ name: branch_specifier
10
+ default: refs/heads/7.15
11
+ description: the Git branch specifier to build (<branchName>, <tagName>,
12
+ <commitId>, etc.)
@@ -0,0 +1,12 @@
1
+ ---
2
+ - job:
3
+ name: elastic+enterprise-search-ruby+7.16
4
+ display-name: 'elastic / enterprise-search-ruby # 7.16'
5
+ description: Testing the enterprise-search-ruby 7.16 branch.
6
+ junit_results: "*-junit.xml"
7
+ parameters:
8
+ - string:
9
+ name: branch_specifier
10
+ default: refs/heads/7.16
11
+ description: the Git branch specifier to build (<branchName>, <tagName>,
12
+ <commitId>, etc.)
data/.ci/test-matrix.yml CHANGED
@@ -3,10 +3,9 @@ RUBY_VERSION:
3
3
  - 3.1
4
4
  - 3.0
5
5
  - 2.7
6
- - 2.6
7
6
 
8
7
  STACK_VERSION:
9
- - 7.17-SNAPSHOT
8
+ - 8.0-SNAPSHOT
10
9
 
11
10
  SERVICE:
12
11
  - appsearch
@@ -1,4 +1,4 @@
1
- name: 7.x
1
+ name: main
2
2
  on: [push, pull_request]
3
3
 
4
4
  jobs:
@@ -7,7 +7,7 @@ jobs:
7
7
  ENDPOINT: http://localhost:8080
8
8
  strategy:
9
9
  matrix:
10
- ruby: [ '2.6', '2.7', '3.0', '3.1' ]
10
+ ruby: [ 2.7, 3.0, 3.1 ]
11
11
 
12
12
  runs-on: ubuntu-latest
13
13
  steps:
@@ -26,7 +26,7 @@ jobs:
26
26
  strategy:
27
27
  fail-fast: false
28
28
  matrix:
29
- ruby: [ jruby-9.2 ]
29
+ ruby: [ jruby-9.3 ]
30
30
  runs-on: ubuntu-latest
31
31
  steps:
32
32
  - uses: actions/checkout@v2
data/.rubocop.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  AllCops:
2
- TargetRubyVersion: 2.5
2
+ TargetRubyVersion: 2.6
3
3
  Layout/EndAlignment:
4
4
  AutoCorrect: true
5
5
  Style/StringLiterals:
data/README.md CHANGED
@@ -34,7 +34,7 @@ If an adapter is not specified, the client will try to auto-detect available lib
34
34
 
35
35
  [See the documentation](https://www.elastic.co/guide/en/enterprise-search-clients/ruby/current/index.html) for usage, code examples, configuring the client, and an API reference.
36
36
 
37
- See code examples of usage for the [Enterprise Search](https://www.elastic.co/guide/en/enterprise-search-clients/ruby/current/enterprise-search-api.html), [App Search](https://www.elastic.co/guide/en/enterprise-search-clients/ruby/current/app-search-api.html) and [Workplace Search](https://www.elastic.co/guide/en/enterprise-search-clients/ruby/current/workplace-search-api.html) APIs.
37
+ See code examples of usage for the [Enteprise Search](https://www.elastic.co/guide/en/enterprise-search-clients/ruby/current/enterprise-search-api.html), [App Search](https://www.elastic.co/guide/en/enterprise-search-clients/ruby/current/app-search-api.html) and [Workplace Search](https://www.elastic.co/guide/en/enterprise-search-clients/ruby/current/workplace-search-api.html) APIs.
38
38
 
39
39
  ## Compatibility
40
40
 
@@ -123,11 +123,13 @@ client.delete_synonym_set(engine_name, synonym_set_id: id)
123
123
  ----------------------------
124
124
  # Create a curation
125
125
  client.create_curation(
126
- engine_name,
127
- queries: ['query1'],
128
- promoted: ['doc-id1'],
129
- hidden: ['doc-id2']
130
- )
126
+ engine_name,
127
+ body: {
128
+ queries: ['query1'],
129
+ promoted: ['doc-id1'],
130
+ hidden: ['doc-id2']
131
+ }
132
+ )
131
133
 
132
134
  # Retrieve a curation by id:
133
135
  client.curation(engine_name, curation_id: 'cur-id')
@@ -135,10 +137,14 @@ client.curation(engine_name, curation_id: 'cur-id')
135
137
  # Update an existing curation:
136
138
  client.put_curation(
137
139
  engine_name,
138
- curation_id: 'cur-id',
139
- queries: ['query1'],
140
- promoted: ['doc-id2'],
141
- hidden: ['doc-id1']
140
+ {
141
+ curation_id: 'cur-id',
142
+ body: {
143
+ queries: ['query1'],
144
+ promoted: ['doc-id2'],
145
+ hidden: ['doc-id1']
146
+ }
147
+ }
142
148
  )
143
149
 
144
150
  # List existing curations:
@@ -24,9 +24,9 @@ require 'faraday/net_http_persistent'
24
24
  client = Elastic::EnterpriseSearch::Client.new(adapter: :net_http_persistent)
25
25
  ---------------------------------------------------
26
26
 
27
- All requests, if successful, will return an `Elasticsearch::Transport::Transport::Response` instance. You can access the response `body`, `headers` and `status`.
27
+ All requests, if successful, will return an `Elastic::Transport::Transport::Response` instance. You can access the response `body`, `headers` and `status`.
28
28
 
29
- `elasticsearch-transport` defines a https://github.com/elasticsearch/elasticsearch-ruby/blob/main/elasticsearch-transport/lib/elasticsearch/transport/transport/errors.rb[number of exception classes] for various client and server errors, as well as unsuccessful HTTP responses, making it possible to rescue specific exceptions with desired granularity. More details https://github.com/elastic/elasticsearch-ruby/tree/main/elasticsearch-transport#exception-handling[here]. You can find the full documentation for `elasticsearch-transport` at https://rubydoc.info/gems/elasticsearch-transport[RubyDoc].
29
+ `elastic-transport` defines a https://github.com/elastic/elastic-transport-ruby/blob/main/lib/elastic/transport/transport/errors.rb[number of exception classes] for various client and server errors, as well as unsuccessful HTTP responses, making it possible to rescue specific exceptions with desired granularity. More details https://github.com/elastic/elastic-transport-ruby#exception-handling[here]. You can find the full documentation for `elastic-transport` at https://rubydoc.info/gems/elastic-transport[RubyDoc].
30
30
 
31
31
  The clients pass different options to transport, you can check them out https://rubydoc.info/github/elastic/enterprise-search-ruby/Elastic/EnterpriseSearch/Client[on RubyDocs].
32
32
 
@@ -26,3 +26,13 @@
26
26
 
27
27
  - Updates source code documentation for `current_page` and `page_size` parameters from type `String` to `Integer`.
28
28
  - In `multi_search`, the body parameter is renamed to `body` from `queries` to avoid repetition and potential confusion.
29
+
30
+ [discrete]
31
+ ==== Workplace Search
32
+
33
+ - Body parameter renamed to `document_ids` in `delete_documents`:
34
+
35
+ [source,rb]
36
+ ----------------------------
37
+ client.delete_documents(content_source_id, document_ids: ['e68fbc2688f1', 'c535e226aee3'])
38
+ ----------------------------
@@ -1,16 +1,4 @@
1
1
  [[release_notes_714]]
2
- === 7.14 Release notes
3
-
4
- [discrete]
5
- [[release_notes_7141]]
6
- === 7.14.1 Release notes
7
-
8
- ==== Dependency fix
9
-
10
- Updates dependency on `elasticsearch-transport` to be more open. At least 7.11 is required, but this way it can be used with different versions of the `elasticsearch` gem (bigger than or equal to `7.11`) in the same project, without a conflict in `elasticsearch-transport`. When instantiating transport, we now check if version is `< 7.14` so we use the right class.
11
-
12
- [discrete]
13
- [[release_notes_7140]]
14
2
  === 7.14.0 Release notes
15
3
 
16
4
  [discrete]
@@ -1,16 +1,4 @@
1
1
  [[release_notes_715]]
2
- === 7.15 Release notes
3
-
4
- [discrete]
5
- [[release_notes_7151]]
6
- === 7.15.1 Release notes
7
-
8
- ==== Dependency fix
9
-
10
- Updates dependency on `elasticsearch-transport` to be more open. At least 7.11 is required, but this way it can be used with different versions of the `elasticsearch` gem (bigger than or equal to `7.11`) in the same project, without a conflict in `elasticsearch-transport`. When instantiating transport, we now check if version is `< 7.14` so we use the right class.
11
-
12
- [discrete]
13
- [[release_notes_7150]]
14
2
  === 7.15.0 Release notes
15
3
 
16
4
  [discrete]
@@ -1,18 +1,6 @@
1
1
  [[release_notes_717]]
2
2
  === 7.17 Release notes
3
3
 
4
- [discrete]
5
- [[release_notes_7171]]
6
- === 7.17.1 Release notes
7
-
8
- - Updates in Documentation: CHANGELOG, CODE_OF_CONDUCT, CONTRIBUTING, NOTICE, README
9
- - Adds the option to specify an adapter for Faraday when initializing a client. See https://github.com/elastic/enterprise-search-ruby/blob/main/README.md#elastic-enterprise-search-client[README]
10
- - Fixes typo in meta data for CLIENT_NAME.
11
-
12
- [discrete]
13
- [[release_notes_7170]]
14
- === 7.17.0 Release notes
15
-
16
4
  [discrete]
17
5
  ==== General
18
6
 
@@ -0,0 +1,14 @@
1
+ [[release_notes_80]]
2
+ === 8.0.0.pre Release notes
3
+
4
+ [discrete]
5
+ ==== General
6
+
7
+ This is a pre-release for the upcoming `8.x` versions of the client.
8
+
9
+ - Tested with Elastic Enterprise Search API version 8.0-SNAPSHOT.
10
+ - Tested with Ruby 2.7, 3.0, 3.1, JRuby 9.3.
11
+ - Updates request to return an Elastic::API::Response object.
12
+
13
+ Full release notes will be released with 8.0.0 GA.
14
+
@@ -2,6 +2,12 @@
2
2
  == Release Notes
3
3
 
4
4
 
5
+ [discrete]
6
+ === 8.x
7
+
8
+ * <<release_notes_80, 8.0.0.pre Release Notes>>
9
+
10
+
5
11
  [discrete]
6
12
  === 7.x
7
13
 
@@ -14,6 +20,7 @@
14
20
  * <<release_notes_711, 7.11.0 Release Notes>>
15
21
  * <<release_notes_710, 7.10.0.beta.1 Release Notes>>
16
22
 
23
+ include::80.asciidoc[]
17
24
  include::717.asciidoc[]
18
25
  include::716.asciidoc[]
19
26
  include::715.asciidoc[]
@@ -59,9 +59,6 @@ response = client.index_documents(content_source_id, body: documents)
59
59
  # Retrieve a document by ID from a specified content source
60
60
  client.document(content_source_id, document_id: '75015d85370d')
61
61
 
62
- # List documents from a custom content source
63
- client.list_documents(content_source_id)
64
-
65
62
  # Delete Documents
66
63
  client.delete_documents(content_source_id, document_ids: ['e68fbc2688f1', 'c535e226aee3'])
67
64
 
@@ -22,7 +22,7 @@ require 'elastic/enterprise-search/version'
22
22
 
23
23
  # rubocop:disable Metrics/BlockLength
24
24
  Gem::Specification.new do |s|
25
- s.required_ruby_version = '>= 2.5'
25
+ s.required_ruby_version = '>= 2.6'
26
26
  s.name = 'elastic-enterprise-search'
27
27
  s.version = Elastic::EnterpriseSearch::VERSION
28
28
  s.authors = ['Fernando Briano']
@@ -47,13 +47,13 @@ Gem::Specification.new do |s|
47
47
  s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
48
48
  s.require_paths = ['lib']
49
49
 
50
- s.add_dependency 'elasticsearch-transport', '>= 7.11'
50
+ s.add_dependency 'elastic-transport', '8.0.0.pre.1'
51
51
  s.add_runtime_dependency 'jwt', '>= 1.5', '< 3.0'
52
52
  s.add_development_dependency 'awesome_print'
53
53
  s.add_development_dependency 'byebug' unless defined?(JRUBY_VERSION)
54
54
  s.add_development_dependency 'rspec', '~> 3.9.0'
55
55
  s.add_development_dependency 'rspec_junit_formatter'
56
- s.add_development_dependency 'rubocop', '~> 1.0.0'
56
+ s.add_development_dependency 'rubocop', '~> 1'
57
57
  s.add_development_dependency 'vcr', '~> 3.0.3'
58
58
  s.add_development_dependency 'webmock'
59
59
  end
@@ -0,0 +1,52 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Licensed to Elasticsearch B.V. under one or more contributor
4
+ # license agreements. See the NOTICE file distributed with
5
+ # this work for additional information regarding copyright
6
+ # ownership. Elasticsearch B.V. licenses this file to you under
7
+ # the Apache License, Version 2.0 (the "License"); you may
8
+ # not use this file except in compliance with the License.
9
+ # You may obtain a copy of the License at
10
+ #
11
+ # http://www.apache.org/licenses/LICENSE-2.0
12
+ #
13
+ # Unless required by applicable law or agreed to in writing,
14
+ # software distributed under the License is distributed on an
15
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16
+ # KIND, either express or implied. See the License for the
17
+ # specific language governing permissions and limitations
18
+ # under the License.
19
+
20
+ module Elastic
21
+ module API
22
+ # Elastic client API Response object. Receives an Elastic::Transport::Transport::Response in
23
+ # the initializer and behaves like a Hash, except when status or headers are called upon it, in
24
+ # which case it returns the original object's status and headers.
25
+ # This class is based on Elasticsearch::API::Response in the Elasticsearch client. For future
26
+ # versions, we'll want this to live in elastic-transport instead.
27
+ class Response
28
+ RESPONSE_METHODS = [:status, :body, :headers].freeze
29
+
30
+ def initialize(response)
31
+ @response = response
32
+ end
33
+
34
+ def method_missing(method, *args, &block)
35
+ if RESPONSE_METHODS.include? method
36
+ @response.send method.to_sym
37
+ else
38
+ @response.body.send(method.to_sym, *args, &block)
39
+ end
40
+ end
41
+
42
+ def respond_to_missing?(method_name, include_private = false)
43
+ @response.body.respond_to?(method_name, include_private) ||
44
+ RESPONSE_METHODS.include?(method_name)
45
+ end
46
+
47
+ def to_s
48
+ @response.body.to_s
49
+ end
50
+ end
51
+ end
52
+ end
@@ -19,31 +19,26 @@
19
19
 
20
20
  module Elastic
21
21
  module EnterpriseSearch
22
- module WorkplaceSearch
22
+ module AppSearch
23
23
  module Actions
24
- # Permissions - Lists all permissions for one user
25
- # List permissions for a user
24
+ # AdaptiveRelevanceSettings - Retrieve adaptive relevance settings
25
+ # Retrieve adaptive relevance settings
26
26
  #
27
- # @param content_source_id [String] Unique ID for a Custom API source, provided upon creation of a Custom API Source (*Required*)
28
- # @param arguments [Hash] endpoint arguments
29
- # @option arguments [String] :user The username in context (*Required*)
27
+ # @param [String] engine_name Name of the engine (*Required*)
28
+ # @param [Hash] arguments endpoint arguments
30
29
  # @option arguments [Hash] :headers optional HTTP headers to send with the request
31
30
  #
32
- # @see https://www.elastic.co/guide/en/workplace-search/current/workplace-search-document-permissions-api.html#list-one
31
+ # @see https://www.elastic.co/guide/en/app-search/current/adaptive-relevance-api-reference.html#adaptive-relevance-api-get-engine-adaptive-relevance-settings
33
32
  #
34
- def user_permissions(content_source_id, arguments = {})
35
- raise ArgumentError, "Required parameter 'content_source_id' missing" unless content_source_id
36
- raise ArgumentError, "Required parameter 'user' missing" unless arguments[:user]
37
-
38
- user = arguments[:user]
33
+ def adaptive_relevance_settings(engine_name, arguments = {})
34
+ raise ArgumentError, "Required parameter 'engine_name' missing" unless engine_name
39
35
 
40
36
  headers = arguments.delete(:headers) || {}
41
-
42
37
  request(
43
38
  :get,
44
- "api/ws/v1/sources/#{content_source_id}/permissions/#{user}/",
39
+ "api/as/v0/engines/#{engine_name}/adaptive_relevance/settings/",
45
40
  arguments,
46
- {},
41
+ nil,
47
42
  headers
48
43
  )
49
44
  end
@@ -19,30 +19,36 @@
19
19
 
20
20
  module Elastic
21
21
  module EnterpriseSearch
22
- module WorkplaceSearch
22
+ module AppSearch
23
23
  module Actions
24
- # Permissions - Adds one or more new permissions atop existing permissions
25
- # Add one or more permission for a given user. Permissions are added atop the existing
24
+ # AdaptiveRelevanceSuggestions - Retrieve adaptive relevance
25
+ # Retrieve adaptive relevance for a single query
26
26
  #
27
- # @param content_source_id [String] Unique ID for a Custom API source, provided upon creation of a Custom API Source (*Required*)
28
- # @param arguments [Hash] endpoint arguments
29
- # @option arguments [String] :user The username in context (*Required*)
30
- # @option arguments [Array] :body List of permissions
27
+ # @param [String] engine_name Name of the engine (*Required*)
28
+ # @param [Hash] arguments endpoint arguments
29
+ # @option arguments [String] :search_suggestion_query Query to obtain suggestions (*Required*)
30
+ # @option arguments [Hash] :body
31
+ # @option body :page
32
+ # @option body [string] :filters
31
33
  # @option arguments [Hash] :headers optional HTTP headers to send with the request
32
34
  #
33
- # @see https://www.elastic.co/guide/en/workplace-search/current/workplace-search-document-permissions-api.html#add-one
35
+ # @see https://www.elastic.co/guide/en/app-search/current/adaptive-relevance-api-reference.html#adaptive-relevance-api-get-engine-adaptive-relevance-suggestions-query
34
36
  #
35
- def add_user_permissions(content_source_id, arguments = {})
36
- raise ArgumentError, "Required parameter 'content_source_id' missing" unless content_source_id
37
- raise ArgumentError, "Required parameter 'user' missing" unless arguments[:user]
37
+ def adaptive_relevance_suggestions(engine_name, arguments = {})
38
+ raise ArgumentError, "Required parameter 'engine_name' missing" unless engine_name
38
39
 
39
- user = arguments[:user]
40
+ unless arguments[:search_suggestion_query]
41
+ raise ArgumentError,
42
+ "Required parameter 'search_suggestion_query' missing"
43
+ end
44
+
45
+ search_suggestion_query = arguments.delete(:search_suggestion_query)
40
46
  body = arguments.delete(:body) || {}
41
- headers = arguments.delete(:headers) || {}
42
47
 
48
+ headers = arguments.delete(:headers) || {}
43
49
  request(
44
50
  :post,
45
- "api/ws/v1/sources/#{content_source_id}/permissions/#{user}/add/",
51
+ "api/as/v0/engines/#{engine_name}/adaptive_relevance/suggestions/#{search_suggestion_query}/",
46
52
  arguments,
47
53
  body,
48
54
  headers
@@ -24,20 +24,19 @@ module Elastic
24
24
  # Engines - Add a source engine
25
25
  # Adds a source engine to a given meta engine
26
26
  #
27
- # @param engine_name [String] Name of the engine (*Required*)
28
- # @param arguments [Hash] endpoint arguments
29
- # @option arguments [Array] :source_engines List of engine names (*Required*)
27
+ # @param [String] engine_name Name of the engine (*Required*)
28
+ # @param [Hash] arguments endpoint arguments
29
+ # @option arguments [Array<String>] :source_engines
30
30
  # @option arguments [Hash] :headers optional HTTP headers to send with the request
31
31
  #
32
32
  # @see https://www.elastic.co/guide/en/app-search/current/meta-engines.html#meta-engines-add-source-engines
33
33
  #
34
34
  def add_meta_engine_source(engine_name, arguments = {})
35
35
  raise ArgumentError, "Required parameter 'engine_name' missing" unless engine_name
36
- raise ArgumentError, "Required parameter 'source_engines' missing" unless arguments[:source_engines]
37
36
 
38
37
  source_engines = arguments.delete(:source_engines) || {}
39
- headers = arguments.delete(:headers) || {}
40
38
 
39
+ headers = arguments.delete(:headers) || {}
41
40
  request(
42
41
  :post,
43
42
  "api/as/v1/engines/#{engine_name}/source_engines/",
@@ -24,9 +24,8 @@ module Elastic
24
24
  # Credentials - Retrieve an API key
25
25
  # Retrieves details of an API key
26
26
  #
27
- # @param arguments [Hash] endpoint arguments
27
+ # @param [Hash] arguments endpoint arguments
28
28
  # @option arguments [String] :api_key_name Name of an API key (*Required*)
29
- # @option arguments [Hash] :body The request body
30
29
  # @option arguments [Hash] :headers optional HTTP headers to send with the request
31
30
  #
32
31
  # @see https://www.elastic.co/guide/en/app-search/current/credentials.html#credentials-single
@@ -34,15 +33,14 @@ module Elastic
34
33
  def api_key(arguments = {})
35
34
  raise ArgumentError, "Required parameter 'api_key_name' missing" unless arguments[:api_key_name]
36
35
 
37
- api_key_name = arguments[:api_key_name]
38
- body = arguments.delete(:body) || {}
39
- headers = arguments.delete(:headers) || {}
36
+ api_key_name = arguments.delete(:api_key_name)
40
37
 
38
+ headers = arguments.delete(:headers) || {}
41
39
  request(
42
40
  :get,
43
41
  "api/as/v1/credentials/#{api_key_name}/",
44
42
  arguments,
45
- body,
43
+ nil,
46
44
  headers
47
45
  )
48
46
  end
@@ -24,31 +24,24 @@ module Elastic
24
24
  # APILogs - Retrieve API logs
25
25
  # The API Log displays API request and response data at the Engine level
26
26
  #
27
- # @param engine_name [String] Name of the engine (*Required*)
28
- # @param arguments [Hash] endpoint arguments
29
- # @option arguments [Date] :from_date Filter date from (*Required*)
30
- # @option arguments [Date] :to_date Filter date to (*Required*)
31
- # @option arguments [Hash] :body
32
- # @option body [String] :query You can search over the full_request_path of an API Log event. Use this to specify a particular endpoint, like analytics, search, curations and so on.
33
- # @option body [String] :sort_direction Would you like to have your results ascending, oldest to newest, or descending, newest to oldest? Accepts asc or desc. Defaults to ascending.
34
- # @option body [Integer] :page current for current page, total_pages for the net number of pages, total_results for the overall number of results, size for the amount of results per page.
27
+ # @param [String] engine_name Name of the engine (*Required*)
28
+ # @param [Hash] arguments endpoint arguments
29
+ # @option arguments [Hash] :body (Required: filters)
35
30
  # @option body :filters
36
- # @option filters [String] :status Filter based on a particular status code: 400, 401, 403, 429, 200
37
- # @option filters [String] :method Filter based on a particular HTTP method: GET, POST, PUT, PATCH, DELETE
31
+ # @option body :page
32
+ # @option body [string] :query
33
+ # @option body :sort_direction
38
34
  # @option arguments [Hash] :headers optional HTTP headers to send with the request
39
35
  #
40
36
  # @see https://www.elastic.co/guide/en/app-search/current/api-logs.html
41
37
  #
42
38
  def api_logs(engine_name, arguments = {})
43
39
  raise ArgumentError, "Required parameter 'engine_name' missing" unless engine_name
44
- raise ArgumentError, "Required parameter 'from_date' missing" unless arguments[:from_date]
45
- raise ArgumentError, "Required parameter 'to_date' missing" unless arguments[:to_date]
40
+ raise ArgumentError, "Required parameter 'body (filters)' missing" unless arguments[:body]
46
41
 
47
42
  body = arguments.delete(:body) || {}
48
- headers = arguments.delete(:headers) || {}
49
- arguments['filters[date][from]'] = date_to_rfc3339(arguments.delete(:from_date))
50
- arguments['filters[date][to]'] = date_to_rfc3339(arguments.delete(:to_date))
51
43
 
44
+ headers = arguments.delete(:headers) || {}
52
45
  request(
53
46
  :post,
54
47
  "api/as/v1/engines/#{engine_name}/logs/api/",
@@ -24,11 +24,11 @@ module Elastic
24
24
  # Analytics - Query for analytics counts data
25
25
  # Returns the number of clicks and total number of queries over a period
26
26
  #
27
- # @param engine_name [String] Name of the engine (*Required*)
28
- # @param arguments [Hash] endpoint arguments
27
+ # @param [String] engine_name Name of the engine (*Required*)
28
+ # @param [Hash] arguments endpoint arguments
29
29
  # @option arguments [Hash] :body
30
- # @option body :filters Analytics filters
31
- # @option body [String] :interval You can define an interval along with your date range. Can be either hour or day
30
+ # @option body :filters
31
+ # @option body [string] :interval
32
32
  # @option arguments [Hash] :headers optional HTTP headers to send with the request
33
33
  #
34
34
  # @see https://www.elastic.co/guide/en/app-search/current/counts.html
@@ -37,8 +37,8 @@ module Elastic
37
37
  raise ArgumentError, "Required parameter 'engine_name' missing" unless engine_name
38
38
 
39
39
  body = arguments.delete(:body) || {}
40
- headers = arguments.delete(:headers) || {}
41
40
 
41
+ headers = arguments.delete(:headers) || {}
42
42
  request(
43
43
  :post,
44
44
  "api/as/v1/engines/#{engine_name}/analytics/counts/",
@@ -24,9 +24,8 @@ module Elastic
24
24
  # Crawler - Get active crawl request details
25
25
  # Returns active crawl request details.
26
26
  #
27
- # @param engine_name [String] Name of the engine (*Required*)
28
- # @param arguments [Hash] endpoint arguments
29
- # @option arguments [Hash] :body The request body
27
+ # @param [String] engine_name Name of the engine (*Required*)
28
+ # @param [Hash] arguments endpoint arguments
30
29
  # @option arguments [Hash] :headers optional HTTP headers to send with the request
31
30
  #
32
31
  # @see https://www.elastic.co/guide/en/app-search/current/web-crawler-api-reference.html#web-crawler-apis-get-crawler-crawl-requests-active
@@ -34,14 +33,12 @@ module Elastic
34
33
  def crawler_active_crawl_request(engine_name, arguments = {})
35
34
  raise ArgumentError, "Required parameter 'engine_name' missing" unless engine_name
36
35
 
37
- body = arguments.delete(:body) || {}
38
36
  headers = arguments.delete(:headers) || {}
39
-
40
37
  request(
41
38
  :get,
42
- "api/as/v0/engines/#{engine_name}/crawler/crawl_requests/active/",
39
+ "api/as/v1/engines/#{engine_name}/crawler/crawl_requests/active/",
43
40
  arguments,
44
- body,
41
+ nil,
45
42
  headers
46
43
  )
47
44
  end