couchbase 3.7.0 → 3.8.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 (286) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -3
  3. data/ext/CMakeLists.txt +4 -1
  4. data/ext/cache/extconf_include.rb +4 -3
  5. data/ext/cache/mozilla-ca-bundle.crt +66 -93
  6. data/ext/cache/mozilla-ca-bundle.sha256 +1 -1
  7. data/ext/couchbase/CMakeLists.txt +24 -11
  8. data/ext/couchbase/cmake/APKBUILD.in +17 -1
  9. data/ext/couchbase/cmake/Bundler.cmake +9 -1
  10. data/ext/couchbase/cmake/Cache.cmake +48 -19
  11. data/ext/couchbase/cmake/CompilerOptions.cmake +3 -1
  12. data/ext/couchbase/cmake/OpenSSL.cmake +10 -2
  13. data/ext/couchbase/cmake/Packaging.cmake +48 -8
  14. data/ext/couchbase/cmake/ThirdPartyDependencies.cmake +43 -1
  15. data/ext/couchbase/cmake/build_config.hxx.in +2 -0
  16. data/ext/couchbase/cmake/couchbase-cxx-client.spec.in +18 -0
  17. data/ext/couchbase/cmake/tarball_glob.txt +10 -0
  18. data/ext/couchbase/core/app_telemetry_meter.cxx +1 -0
  19. data/ext/couchbase/core/app_telemetry_reporter.cxx +45 -43
  20. data/ext/couchbase/core/app_telemetry_reporter.hxx +4 -3
  21. data/ext/couchbase/core/bucket.cxx +128 -13
  22. data/ext/couchbase/core/bucket.hxx +12 -2
  23. data/ext/couchbase/core/cluster.cxx +304 -152
  24. data/ext/couchbase/core/cluster.hxx +32 -0
  25. data/ext/couchbase/core/cluster_credentials.cxx +25 -0
  26. data/ext/couchbase/core/cluster_credentials.hxx +5 -0
  27. data/ext/couchbase/core/cluster_label_listener.cxx +72 -0
  28. data/ext/couchbase/core/cluster_label_listener.hxx +46 -0
  29. data/ext/couchbase/core/cluster_options.hxx +4 -0
  30. data/ext/couchbase/core/deprecation_utils.hxx +26 -0
  31. data/ext/couchbase/core/error.hxx +27 -0
  32. data/ext/couchbase/core/free_form_http_request.hxx +0 -2
  33. data/ext/couchbase/core/http_component.cxx +12 -48
  34. data/ext/couchbase/core/impl/analytics.cxx +3 -2
  35. data/ext/couchbase/core/impl/analytics.hxx +2 -1
  36. data/ext/couchbase/core/impl/analytics_index_manager.cxx +249 -137
  37. data/ext/couchbase/core/impl/binary_collection.cxx +134 -58
  38. data/ext/couchbase/core/impl/bucket_manager.cxx +87 -35
  39. data/ext/couchbase/core/impl/collection.cxx +560 -245
  40. data/ext/couchbase/core/impl/collection_manager.cxx +89 -49
  41. data/ext/couchbase/core/impl/dns_srv_tracker.cxx +4 -4
  42. data/ext/couchbase/core/impl/error.cxx +20 -13
  43. data/ext/couchbase/core/impl/error.hxx +15 -10
  44. data/ext/couchbase/core/impl/get_all_replicas.hxx +1 -1
  45. data/ext/couchbase/core/impl/get_any_replica.hxx +2 -1
  46. data/ext/couchbase/core/impl/get_replica.hxx +2 -0
  47. data/ext/couchbase/core/impl/lookup_in_replica.hxx +1 -1
  48. data/ext/couchbase/core/impl/observability_recorder.cxx +161 -0
  49. data/ext/couchbase/core/impl/observability_recorder.hxx +77 -0
  50. data/ext/couchbase/core/impl/observe_seqno.hxx +2 -0
  51. data/ext/couchbase/core/impl/public_bucket.cxx +31 -7
  52. data/ext/couchbase/core/impl/public_cluster.cxx +107 -19
  53. data/ext/couchbase/core/impl/query.cxx +6 -3
  54. data/ext/couchbase/core/impl/query.hxx +3 -1
  55. data/ext/couchbase/core/impl/query_index_manager.cxx +267 -102
  56. data/ext/couchbase/core/impl/scope.cxx +53 -11
  57. data/ext/couchbase/core/impl/search.cxx +8 -4
  58. data/ext/couchbase/core/impl/search.hxx +6 -2
  59. data/ext/couchbase/core/impl/search_index_manager.cxx +131 -41
  60. data/ext/couchbase/core/impl/with_cancellation.hxx +75 -0
  61. data/ext/couchbase/core/io/config_tracker.cxx +9 -9
  62. data/ext/couchbase/core/io/config_tracker.hxx +2 -1
  63. data/ext/couchbase/core/io/http_command.hxx +98 -49
  64. data/ext/couchbase/core/io/http_context.hxx +2 -0
  65. data/ext/couchbase/core/io/http_session.cxx +23 -10
  66. data/ext/couchbase/core/io/http_session.hxx +17 -9
  67. data/ext/couchbase/core/io/http_session_manager.hxx +163 -228
  68. data/ext/couchbase/core/io/http_traits.hxx +0 -7
  69. data/ext/couchbase/core/io/mcbp_command.hxx +123 -44
  70. data/ext/couchbase/core/io/mcbp_session.cxx +251 -26
  71. data/ext/couchbase/core/io/mcbp_session.hxx +9 -1
  72. data/ext/couchbase/core/io/mcbp_traits.hxx +0 -8
  73. data/ext/couchbase/core/io/streams.cxx +3 -3
  74. data/ext/couchbase/core/io/streams.hxx +3 -2
  75. data/ext/couchbase/core/meta/features.hxx +15 -0
  76. data/ext/couchbase/core/meta/version.cxx +13 -0
  77. data/ext/couchbase/core/meta/version.hxx +3 -0
  78. data/ext/couchbase/core/metrics/constants.hxx +23 -0
  79. data/ext/couchbase/core/metrics/logging_meter.cxx +5 -5
  80. data/ext/couchbase/core/metrics/meter_wrapper.cxx +65 -63
  81. data/ext/couchbase/core/metrics/meter_wrapper.hxx +12 -10
  82. data/ext/couchbase/core/operations/document_analytics.hxx +0 -5
  83. data/ext/couchbase/core/operations/document_append.hxx +0 -4
  84. data/ext/couchbase/core/operations/document_decrement.hxx +0 -5
  85. data/ext/couchbase/core/operations/document_exists.hxx +0 -7
  86. data/ext/couchbase/core/operations/document_get.hxx +0 -7
  87. data/ext/couchbase/core/operations/document_get_all_replicas.hxx +77 -27
  88. data/ext/couchbase/core/operations/document_get_and_lock.hxx +0 -9
  89. data/ext/couchbase/core/operations/document_get_and_touch.hxx +0 -9
  90. data/ext/couchbase/core/operations/document_get_any_replica.hxx +83 -2
  91. data/ext/couchbase/core/operations/document_get_projected.hxx +0 -9
  92. data/ext/couchbase/core/operations/document_increment.hxx +0 -5
  93. data/ext/couchbase/core/operations/document_insert.hxx +0 -4
  94. data/ext/couchbase/core/operations/document_lookup_in.hxx +0 -9
  95. data/ext/couchbase/core/operations/document_lookup_in_all_replicas.hxx +46 -4
  96. data/ext/couchbase/core/operations/document_lookup_in_any_replica.hxx +121 -43
  97. data/ext/couchbase/core/operations/document_mutate_in.hxx +0 -5
  98. data/ext/couchbase/core/operations/document_prepend.hxx +0 -4
  99. data/ext/couchbase/core/operations/document_query.hxx +0 -4
  100. data/ext/couchbase/core/operations/document_remove.hxx +0 -4
  101. data/ext/couchbase/core/operations/document_replace.hxx +0 -4
  102. data/ext/couchbase/core/operations/document_search.hxx +0 -7
  103. data/ext/couchbase/core/operations/document_touch.hxx +0 -7
  104. data/ext/couchbase/core/operations/document_unlock.hxx +0 -6
  105. data/ext/couchbase/core/operations/document_upsert.hxx +0 -4
  106. data/ext/couchbase/core/operations/document_view.cxx +2 -0
  107. data/ext/couchbase/core/operations/document_view.hxx +10 -13
  108. data/ext/couchbase/core/operations/http_noop.hxx +2 -0
  109. data/ext/couchbase/core/operations/management/analytics_dataset_create.hxx +2 -0
  110. data/ext/couchbase/core/operations/management/analytics_dataset_drop.hxx +2 -0
  111. data/ext/couchbase/core/operations/management/analytics_dataset_get_all.hxx +2 -0
  112. data/ext/couchbase/core/operations/management/analytics_dataverse_create.hxx +2 -0
  113. data/ext/couchbase/core/operations/management/analytics_dataverse_drop.hxx +2 -0
  114. data/ext/couchbase/core/operations/management/analytics_get_pending_mutations.hxx +2 -0
  115. data/ext/couchbase/core/operations/management/analytics_index_create.hxx +2 -0
  116. data/ext/couchbase/core/operations/management/analytics_index_drop.hxx +2 -0
  117. data/ext/couchbase/core/operations/management/analytics_index_get_all.hxx +2 -0
  118. data/ext/couchbase/core/operations/management/analytics_link_connect.hxx +2 -0
  119. data/ext/couchbase/core/operations/management/analytics_link_create.hxx +2 -0
  120. data/ext/couchbase/core/operations/management/analytics_link_disconnect.hxx +2 -0
  121. data/ext/couchbase/core/operations/management/analytics_link_drop.hxx +2 -0
  122. data/ext/couchbase/core/operations/management/analytics_link_get_all.hxx +2 -0
  123. data/ext/couchbase/core/operations/management/analytics_link_replace.hxx +2 -0
  124. data/ext/couchbase/core/operations/management/bucket_create.hxx +2 -0
  125. data/ext/couchbase/core/operations/management/bucket_describe.hxx +2 -0
  126. data/ext/couchbase/core/operations/management/bucket_drop.hxx +2 -0
  127. data/ext/couchbase/core/operations/management/bucket_flush.hxx +2 -0
  128. data/ext/couchbase/core/operations/management/bucket_get.hxx +2 -0
  129. data/ext/couchbase/core/operations/management/bucket_get_all.hxx +2 -0
  130. data/ext/couchbase/core/operations/management/bucket_update.hxx +2 -0
  131. data/ext/couchbase/core/operations/management/change_password.hxx +2 -0
  132. data/ext/couchbase/core/operations/management/cluster_describe.hxx +2 -0
  133. data/ext/couchbase/core/operations/management/cluster_developer_preview_enable.hxx +2 -0
  134. data/ext/couchbase/core/operations/management/collection_create.hxx +2 -0
  135. data/ext/couchbase/core/operations/management/collection_drop.hxx +2 -0
  136. data/ext/couchbase/core/operations/management/collection_update.hxx +2 -0
  137. data/ext/couchbase/core/operations/management/collections_manifest_get.hxx +2 -0
  138. data/ext/couchbase/core/operations/management/error_utils.cxx +4 -1
  139. data/ext/couchbase/core/operations/management/eventing_deploy_function.hxx +2 -0
  140. data/ext/couchbase/core/operations/management/eventing_drop_function.hxx +2 -0
  141. data/ext/couchbase/core/operations/management/eventing_get_all_functions.hxx +2 -0
  142. data/ext/couchbase/core/operations/management/eventing_get_function.hxx +2 -0
  143. data/ext/couchbase/core/operations/management/eventing_get_status.hxx +2 -0
  144. data/ext/couchbase/core/operations/management/eventing_pause_function.hxx +2 -0
  145. data/ext/couchbase/core/operations/management/eventing_resume_function.hxx +2 -0
  146. data/ext/couchbase/core/operations/management/eventing_undeploy_function.hxx +2 -0
  147. data/ext/couchbase/core/operations/management/eventing_upsert_function.hxx +2 -0
  148. data/ext/couchbase/core/operations/management/freeform.hxx +2 -0
  149. data/ext/couchbase/core/operations/management/group_drop.hxx +2 -0
  150. data/ext/couchbase/core/operations/management/group_get.hxx +2 -0
  151. data/ext/couchbase/core/operations/management/group_get_all.hxx +2 -0
  152. data/ext/couchbase/core/operations/management/group_upsert.hxx +2 -0
  153. data/ext/couchbase/core/operations/management/query_index_build.hxx +2 -0
  154. data/ext/couchbase/core/operations/management/query_index_build_deferred.hxx +68 -30
  155. data/ext/couchbase/core/operations/management/query_index_create.hxx +2 -0
  156. data/ext/couchbase/core/operations/management/query_index_drop.hxx +2 -0
  157. data/ext/couchbase/core/operations/management/query_index_get_all.hxx +4 -3
  158. data/ext/couchbase/core/operations/management/query_index_get_all_deferred.hxx +2 -1
  159. data/ext/couchbase/core/operations/management/role_get_all.hxx +2 -0
  160. data/ext/couchbase/core/operations/management/scope_create.hxx +2 -0
  161. data/ext/couchbase/core/operations/management/scope_drop.hxx +2 -0
  162. data/ext/couchbase/core/operations/management/scope_get_all.hxx +2 -0
  163. data/ext/couchbase/core/operations/management/search_get_stats.hxx +2 -0
  164. data/ext/couchbase/core/operations/management/search_index_analyze_document.hxx +2 -0
  165. data/ext/couchbase/core/operations/management/search_index_control_ingest.hxx +2 -0
  166. data/ext/couchbase/core/operations/management/search_index_control_plan_freeze.hxx +2 -0
  167. data/ext/couchbase/core/operations/management/search_index_control_query.hxx +2 -0
  168. data/ext/couchbase/core/operations/management/search_index_drop.hxx +2 -0
  169. data/ext/couchbase/core/operations/management/search_index_get.hxx +2 -0
  170. data/ext/couchbase/core/operations/management/search_index_get_all.hxx +2 -0
  171. data/ext/couchbase/core/operations/management/search_index_get_documents_count.hxx +2 -0
  172. data/ext/couchbase/core/operations/management/search_index_get_stats.hxx +2 -0
  173. data/ext/couchbase/core/operations/management/search_index_upsert.hxx +2 -0
  174. data/ext/couchbase/core/operations/management/user_drop.hxx +2 -0
  175. data/ext/couchbase/core/operations/management/user_get.hxx +2 -0
  176. data/ext/couchbase/core/operations/management/user_get_all.hxx +2 -0
  177. data/ext/couchbase/core/operations/management/user_upsert.hxx +2 -0
  178. data/ext/couchbase/core/operations/management/view_index_drop.hxx +2 -0
  179. data/ext/couchbase/core/operations/management/view_index_get.hxx +2 -0
  180. data/ext/couchbase/core/operations/management/view_index_get_all.hxx +2 -0
  181. data/ext/couchbase/core/operations/management/view_index_upsert.hxx +2 -0
  182. data/ext/couchbase/core/operations/operation_traits.hxx +6 -0
  183. data/ext/couchbase/core/operations.hxx +0 -1
  184. data/ext/couchbase/core/operations_fwd.hxx +8 -0
  185. data/ext/couchbase/core/origin.cxx +67 -12
  186. data/ext/couchbase/core/origin.hxx +13 -8
  187. data/ext/couchbase/core/orphan_reporter.cxx +164 -0
  188. data/ext/couchbase/core/orphan_reporter.hxx +65 -0
  189. data/ext/couchbase/core/sasl/CMakeLists.txt +1 -0
  190. data/ext/couchbase/core/sasl/client.cc +6 -0
  191. data/ext/couchbase/core/sasl/mechanism.cc +2 -1
  192. data/ext/couchbase/core/sasl/mechanism.h +2 -1
  193. data/ext/couchbase/core/sasl/oauthbearer/oauthbearer.cc +41 -0
  194. data/ext/couchbase/core/sasl/oauthbearer/oauthbearer.h +47 -0
  195. data/ext/couchbase/core/tls_context_provider.cxx +44 -0
  196. data/ext/couchbase/core/tls_context_provider.hxx +44 -0
  197. data/ext/couchbase/core/tracing/attribute_helpers.hxx +45 -0
  198. data/ext/couchbase/core/tracing/constants.hxx +148 -68
  199. data/ext/couchbase/core/tracing/threshold_logging_options.hxx +0 -3
  200. data/ext/couchbase/core/tracing/threshold_logging_tracer.cxx +122 -170
  201. data/ext/couchbase/core/tracing/tracer_wrapper.cxx +17 -24
  202. data/ext/couchbase/core/tracing/tracer_wrapper.hxx +8 -10
  203. data/ext/couchbase/core/tracing/wrapper_sdk_tracer.cxx +114 -0
  204. data/ext/couchbase/core/tracing/wrapper_sdk_tracer.hxx +85 -0
  205. data/ext/couchbase/core/transactions/attempt_context_impl.cxx +16 -14
  206. data/ext/couchbase/core/transactions/attempt_context_impl.hxx +4 -4
  207. data/ext/couchbase/core/transactions/transactions.cxx +1 -1
  208. data/ext/couchbase/core/transactions/transactions_cleanup.cxx +1 -2
  209. data/ext/couchbase/core/utils/byteswap.hxx +12 -0
  210. data/ext/couchbase/core/utils/concurrent_fixed_priority_queue.hxx +102 -0
  211. data/ext/couchbase/core/utils/connection_string.cxx +2 -0
  212. data/ext/couchbase/couchbase/certificate_authenticator.hxx +1 -0
  213. data/ext/couchbase/couchbase/cluster.hxx +47 -0
  214. data/ext/couchbase/couchbase/cluster_options.hxx +16 -0
  215. data/ext/couchbase/couchbase/collection.hxx +60 -15
  216. data/ext/couchbase/couchbase/error_codes.hxx +48 -48
  217. data/ext/couchbase/couchbase/jwt_authenticator.hxx +52 -0
  218. data/ext/couchbase/couchbase/metrics/meter.hxx +2 -1
  219. data/ext/couchbase/couchbase/metrics/otel_meter.hxx +75 -80
  220. data/ext/couchbase/couchbase/network_options.hxx +19 -0
  221. data/ext/couchbase/couchbase/password_authenticator.hxx +1 -0
  222. data/ext/couchbase/couchbase/tracing/otel_tracer.hxx +15 -17
  223. data/ext/couchbase/couchbase/tracing/request_span.hxx +2 -2
  224. data/ext/couchbase.cxx +4 -0
  225. data/ext/extconf.rb +1 -0
  226. data/ext/rcb_analytics.cxx +157 -47
  227. data/ext/rcb_backend.cxx +118 -71
  228. data/ext/rcb_buckets.cxx +39 -16
  229. data/ext/rcb_collections.cxx +36 -12
  230. data/ext/rcb_crud.cxx +587 -294
  231. data/ext/rcb_hdr_histogram.cxx +219 -0
  232. data/ext/rcb_hdr_histogram.hxx +28 -0
  233. data/ext/rcb_multi.cxx +142 -59
  234. data/ext/rcb_observability.cxx +132 -0
  235. data/ext/rcb_observability.hxx +49 -0
  236. data/ext/rcb_query.cxx +77 -27
  237. data/ext/rcb_search.cxx +92 -31
  238. data/ext/rcb_users.cxx +69 -26
  239. data/ext/rcb_utils.cxx +91 -0
  240. data/ext/rcb_utils.hxx +141 -168
  241. data/ext/rcb_views.cxx +36 -12
  242. data/lib/active_support/cache/couchbase_store.rb +6 -6
  243. data/lib/couchbase/authenticator.rb +14 -0
  244. data/lib/couchbase/binary_collection.rb +37 -22
  245. data/lib/couchbase/bucket.rb +46 -31
  246. data/lib/couchbase/cluster.rb +146 -61
  247. data/lib/couchbase/collection.rb +257 -186
  248. data/lib/couchbase/datastructures/couchbase_list.rb +81 -50
  249. data/lib/couchbase/datastructures/couchbase_map.rb +86 -50
  250. data/lib/couchbase/datastructures/couchbase_queue.rb +64 -38
  251. data/lib/couchbase/datastructures/couchbase_set.rb +57 -41
  252. data/lib/couchbase/deprecations.rb +1 -1
  253. data/lib/couchbase/diagnostics.rb +8 -8
  254. data/lib/couchbase/errors.rb +6 -0
  255. data/lib/couchbase/management/analytics_index_manager.rb +90 -59
  256. data/lib/couchbase/management/bucket_manager.rb +73 -45
  257. data/lib/couchbase/management/collection_manager.rb +86 -43
  258. data/lib/couchbase/management/collection_query_index_manager.rb +56 -33
  259. data/lib/couchbase/management/query_index_manager.rb +88 -36
  260. data/lib/couchbase/management/scope_search_index_manager.rb +119 -52
  261. data/lib/couchbase/management/search_index_manager.rb +401 -178
  262. data/lib/couchbase/management/user_manager.rb +343 -174
  263. data/lib/couchbase/management/view_index_manager.rb +166 -73
  264. data/lib/couchbase/metrics/logging_meter.rb +108 -0
  265. data/lib/couchbase/metrics/logging_value_recorder.rb +50 -0
  266. data/lib/couchbase/metrics/meter.rb +27 -0
  267. data/lib/couchbase/metrics/noop_meter.rb +30 -0
  268. data/lib/couchbase/metrics/noop_value_recorder.rb +27 -0
  269. data/lib/couchbase/metrics/value_recorder.rb +25 -0
  270. data/lib/couchbase/options.rb +69 -3
  271. data/lib/couchbase/protostellar/cluster.rb +3 -0
  272. data/lib/couchbase/scope.rb +62 -48
  273. data/lib/couchbase/search_options.rb +18 -18
  274. data/lib/couchbase/tracing/noop_span.rb +29 -0
  275. data/lib/couchbase/tracing/noop_tracer.rb +29 -0
  276. data/lib/couchbase/tracing/request_span.rb +34 -0
  277. data/lib/couchbase/tracing/request_tracer.rb +28 -0
  278. data/lib/couchbase/tracing/threshold_logging_span.rb +112 -0
  279. data/lib/couchbase/tracing/threshold_logging_tracer.rb +231 -0
  280. data/lib/couchbase/utils/hdr_histogram.rb +55 -0
  281. data/lib/couchbase/utils/observability.rb +257 -0
  282. data/lib/couchbase/utils/observability_constants.rb +200 -0
  283. data/lib/couchbase/utils/stdlib_logger_adapter.rb +1 -3
  284. data/lib/couchbase/version.rb +1 -1
  285. data/lib/couchbase.rb +2 -2
  286. metadata +58 -6
@@ -14,6 +14,8 @@
14
14
  # See the License for the specific language governing permissions and
15
15
  # limitations under the License.
16
16
 
17
+ require_relative "search_index_manager"
18
+
17
19
  module Couchbase
18
20
  module Management
19
21
  class ScopeSearchIndexManager
@@ -22,179 +24,244 @@ module Couchbase
22
24
  # @param [Couchbase::Backend] backend
23
25
  # @param [String] bucket_name
24
26
  # @param [String] scope_name
25
- def initialize(backend, bucket_name, scope_name)
27
+ # @param [Couchbase::Observability::Wrapper] observability wrapper
28
+ def initialize(backend, bucket_name, scope_name, observability)
26
29
  @backend = backend
27
30
  @bucket_name = bucket_name
28
31
  @scope_name = scope_name
32
+ @observability = observability
29
33
  end
30
34
 
31
35
  # Fetches an index from the server if it exists
32
36
  #
33
37
  # @param [String] index_name name of the index
34
- # @param [GetIndexOptions] options
38
+ # @param [Options::Search::GetIndex] options
35
39
  #
36
40
  # @return [SearchIndex]
37
41
  #
38
42
  # @raise [ArgumentError]
39
43
  # @raise [Error::IndexNotFound]
40
- def get_index(index_name, options = GetIndexOptions.new)
41
- res = @backend.search_index_get(@bucket_name, @scope_name, index_name, options.timeout)
42
- SearchIndexManager.extract_search_index(res)
44
+ def get_index(index_name, options = Options::Search::GetIndex::DEFAULT)
45
+ @observability.record_operation(Observability::OP_SM_GET_INDEX, options.parent_span, self, :search) do |obs_handler|
46
+ res = @backend.search_index_get(@bucket_name, @scope_name, index_name, options.timeout, obs_handler)
47
+ SearchIndexManager.extract_search_index(res)
48
+ end
43
49
  end
44
50
 
45
51
  # Fetches all indexes from the server
46
52
  #
47
- # @param [GetAllIndexesOptions] options
53
+ # @param [Options::Search::GetAllIndexes] options
48
54
  #
49
55
  # @return [Array<SearchIndex>]
50
- def get_all_indexes(options = GetAllIndexesOptions.new)
51
- res = @backend.search_index_get_all(@bucket_name, @scope_name, options.timeout)
52
- res[:indexes].map { |idx| SearchIndexManager.extract_search_index(idx) }
56
+ def get_all_indexes(options = Options::Search::GetAllIndexes::DEFAULT)
57
+ @observability.record_operation(Observability::OP_SM_GET_ALL_INDEXES, options.parent_span, self, :search) do |obs_handler|
58
+ res = @backend.search_index_get_all(@bucket_name, @scope_name, options.timeout, obs_handler)
59
+ res[:indexes].map { |idx| SearchIndexManager.extract_search_index(idx) }
60
+ end
53
61
  end
54
62
 
55
63
  # Creates or updates the index
56
64
  #
57
65
  # @param [SearchIndex] index_definition the index definition
58
- # @param [UpsertIndexOptions] options
66
+ # @param [Options::Search::UpsertIndex] options
59
67
  #
60
68
  # @return void
61
69
  #
62
70
  # @raise [ArgumentError] if name, type or source_type is empty
63
- def upsert_index(index_definition, options = UpsertIndexOptions.new)
64
- @backend.search_index_upsert(@bucket_name, @scope_name, index_definition.to_backend, options.timeout)
71
+ def upsert_index(index_definition, options = Options::Search::UpsertIndex::DEFAULT)
72
+ @observability.record_operation(Observability::OP_SM_UPSERT_INDEX, options.parent_span, self, :search) do |obs_handler|
73
+ @backend.search_index_upsert(@bucket_name, @scope_name, index_definition.to_backend, options.timeout, obs_handler)
74
+ end
65
75
  end
66
76
 
67
77
  # Drops the index
68
78
  #
69
79
  # @param [String] index_name name of the index
70
- # @param [DropIndexOptions] options
80
+ # @param [Options::Search::DropIndex] options
71
81
  #
72
82
  # @return void
73
83
  #
74
84
  # @raise [ArgumentError]
75
85
  # @raise [Error::IndexNotFound]
76
- def drop_index(index_name, options = DropIndexOptions.new)
77
- @backend.search_index_drop(@bucket_name, @scope_name, index_name, options.timeout)
86
+ def drop_index(index_name, options = Options::Search::DropIndex::DEFAULT)
87
+ @observability.record_operation(Observability::OP_SM_DROP_INDEX, options.parent_span, self, :search) do |obs_handler|
88
+ @backend.search_index_drop(@bucket_name, @scope_name, index_name, options.timeout, obs_handler)
89
+ end
78
90
  end
79
91
 
80
92
  # Retrieves the number of documents that have been indexed for an index
81
93
  #
82
94
  # @param [String] index_name name of the index
83
- # @param [GetIndexedDocumentsCountOptions] options
95
+ # @param [Options::Search::GetIndexedDocumentsCount] options
84
96
  #
85
97
  # @return [Integer]
86
98
  #
87
99
  # @raise [ArgumentError]
88
100
  # @raise [Error::IndexNotFound]
89
- def get_indexed_documents_count(index_name, options = GetIndexedDocumentsCountOptions.new)
90
- res = @backend.search_index_get_documents_count(@bucket_name, @scope_name, index_name, options.timeout)
91
- res[:count]
101
+ def get_indexed_documents_count(index_name, options = Options::Search::GetIndexedDocumentsCount::DEFAULT)
102
+ @observability.record_operation(Observability::OP_SM_GET_INDEXED_DOCUMENTS_COUNT, options.parent_span, self,
103
+ :search) do |obs_handler|
104
+ res = @backend.search_index_get_documents_count(@bucket_name, @scope_name, index_name, options.timeout, obs_handler)
105
+ res[:count]
106
+ end
92
107
  end
93
108
 
94
109
  # Pauses updates and maintenance for the index
95
110
  #
96
111
  # @param [String] index_name name of the index
97
- # @param [PauseIngestOptions] options
112
+ # @param [Options::Search::PauseIngest] options
98
113
  #
99
114
  # @return void
100
115
  #
101
116
  # @raise [ArgumentError]
102
117
  # @raise [Error::IndexNotFound]
103
- def pause_ingest(index_name, options = PauseIngestOptions.new)
104
- @backend.search_index_pause_ingest(@bucket_name, @scope_name, index_name, options.timeout)
118
+ def pause_ingest(index_name, options = Options::Search::PauseIngest::DEFAULT)
119
+ @observability.record_operation(Observability::OP_SM_PAUSE_INGEST, options.parent_span, self, :search) do |obs_handler|
120
+ @backend.search_index_pause_ingest(@bucket_name, @scope_name, index_name, options.timeout, obs_handler)
121
+ end
105
122
  end
106
123
 
107
124
  # Resumes updates and maintenance for an index
108
125
  #
109
126
  # @param [String] index_name name of the index
110
- # @param [ResumeIngestOptions] options
127
+ # @param [Options::Search::ResumeIngest] options
111
128
  #
112
129
  # @return void
113
130
  #
114
131
  # @raise [ArgumentError]
115
132
  # @raise [Error::IndexNotFound]
116
- def resume_ingest(index_name, options = ResumeIngestOptions.new)
117
- @backend.search_index_resume_ingest(@bucket_name, @scope_name, index_name, options.timeout)
133
+ def resume_ingest(index_name, options = Options::Search::ResumeIngest::DEFAULT)
134
+ @observability.record_operation(Observability::OP_SM_RESUME_INGEST, options.parent_span, self, :search) do |obs_handler|
135
+ @backend.search_index_resume_ingest(@bucket_name, @scope_name, index_name, options.timeout, obs_handler)
136
+ end
118
137
  end
119
138
 
120
139
  # Allows querying against the index
121
140
  #
122
141
  # @param [String] index_name name of the index
123
- # @param [AllowQueryingOptions] options
142
+ # @param [Options::Search::AllowQuerying] options
124
143
  #
125
144
  # @return void
126
145
  #
127
146
  # @raise [ArgumentError]
128
147
  # @raise [Error::IndexNotFound]
129
- def allow_querying(index_name, options = AllowQueryingOptions.new)
130
- @backend.search_index_allow_querying(@bucket_name, @scope_name, index_name, options.timeout)
148
+ def allow_querying(index_name, options = Options::Search::AllowQuerying::DEFAULT)
149
+ @observability.record_operation(Observability::OP_SM_ALLOW_QUERYING, options.parent_span, self, :search) do |obs_handler|
150
+ @backend.search_index_allow_querying(@bucket_name, @scope_name, index_name, options.timeout, obs_handler)
151
+ end
131
152
  end
132
153
 
133
154
  # Disallows querying against the index
134
155
  #
135
156
  # @param [String] index_name name of the index
136
- # @param [DisallowQueryingOptions] options
157
+ # @param [Options::Search::DisallowQuerying] options
137
158
  #
138
159
  # @return void
139
160
  #
140
161
  # @raise [ArgumentError]
141
162
  # @raise [Error::IndexNotFound]
142
- def disallow_querying(index_name, options = DisallowQueryingOptions.new)
143
- @backend.search_index_disallow_querying(@bucket_name, @scope_name, index_name, options.timeout)
163
+ def disallow_querying(index_name, options = Options::Search::DisallowQuerying::DEFAULT)
164
+ @observability.record_operation(Observability::OP_SM_DISALLOW_QUERYING, options.parent_span, self, :search) do |obs_handler|
165
+ @backend.search_index_disallow_querying(@bucket_name, @scope_name, index_name, options.timeout, obs_handler)
166
+ end
144
167
  end
145
168
 
146
169
  # Freeze the assignment of index partitions to nodes
147
170
  #
148
171
  # @param [String] index_name name of the index
149
- # @param [FreezePlanOptions] options
172
+ # @param [Options::Search::FreezePlan] options
150
173
  #
151
174
  # @return void
152
175
  #
153
176
  # @raise [ArgumentError]
154
177
  # @raise [Error::IndexNotFound]
155
- def freeze_plan(index_name, options = FreezePlanOptions.new)
156
- @backend.search_index_freeze_plan(@bucket_name, @scope_name, index_name, options.timeout)
178
+ def freeze_plan(index_name, options = Options::Search::FreezePlan::DEFAULT)
179
+ @observability.record_operation(Observability::OP_SM_FREEZE_PLAN, options.parent_span, self, :search) do |obs_handler|
180
+ @backend.search_index_freeze_plan(@bucket_name, @scope_name, index_name, options.timeout, obs_handler)
181
+ end
157
182
  end
158
183
 
159
184
  # Unfreeze the assignment of index partitions to nodes
160
185
  #
161
186
  # @param [String] index_name name of the index
162
- # @param [UnfreezePlanOptions] options
187
+ # @param [Options::Search::UnfreezePlan] options
163
188
  #
164
189
  # @return void
165
190
  #
166
191
  # @raise [ArgumentError]
167
192
  # @raise [Error::IndexNotFound]
168
- def unfreeze_plan(index_name, options = UnfreezePlanOptions.new)
169
- @backend.search_index_unfreeze_plan(@bucket_name, @scope_name, index_name, options.timeout)
193
+ def unfreeze_plan(index_name, options = Options::Search::UnfreezePlan::DEFAULT)
194
+ @observability.record_operation(Observability::OP_SM_UNFREEZE_PLAN, options.parent_span, self, :search) do |obs_handler|
195
+ @backend.search_index_unfreeze_plan(@bucket_name, @scope_name, index_name, options.timeout, obs_handler)
196
+ end
170
197
  end
171
198
 
172
199
  # Allows to see how a document is analyzed against a specific index
173
200
  #
174
201
  # @param [String] index_name name of the index
175
202
  # @param [Hash] document the document to be analyzed
203
+ # @param [Options::Search::AnalyzeDocument] options
176
204
  #
177
205
  # @return [Array<Hash>]
178
206
  #
179
207
  # @raise [ArgumentError]
180
208
  # @raise [Error::IndexNotFound]
181
- def analyze_document(index_name, document, options = AnalyzeDocumentOptions.new)
182
- res = @backend.search_index_analyze_document(@bucket_name, @scope_name, index_name, JSON.generate(document), options.timeout)
183
- JSON.parse(res[:analysis])
209
+ def analyze_document(index_name, document, options = Options::Search::AnalyzeDocument::DEFAULT)
210
+ @observability.record_operation(Observability::OP_SM_ANALYZE_DOCUMENT, options.parent_span, self, :search) do |obs_handler|
211
+ res = @backend.search_index_analyze_document(
212
+ @bucket_name, @scope_name, index_name, JSON.generate(document), options.timeout, obs_handler
213
+ )
214
+ JSON.parse(res[:analysis])
215
+ end
184
216
  end
185
217
 
186
- GetIndexOptions = SearchIndexManager::GetIndexOptions
187
- GetAllIndexesOptions = SearchIndexManager::GetAllIndexesOptions
188
- UpsertIndexOptions = SearchIndexManager::UpsertIndexOptions
189
- DropIndexOptions = SearchIndexManager::DropIndexOptions
190
- GetIndexedDocumentsCountOptions = SearchIndexManager::GetIndexedDocumentsCountOptions
191
- PauseIngestOptions = SearchIndexManager::PauseIngestOptions
192
- ResumeIngestOptions = SearchIndexManager::ResumeIngestOptions
193
- AllowQueryingOptions = SearchIndexManager::AllowQueryingOptions
194
- DisallowQueryingOptions = SearchIndexManager::DisallowQueryingOptions
195
- FreezePlanOptions = SearchIndexManager::FreezePlanOptions
196
- UnfreezePlanOptions = SearchIndexManager::UnfreezePlanOptions
197
- AnalyzeDocumentOptions = SearchIndexManager::AnalyzeDocumentOptions
218
+ # @api private
219
+ # @deprecated use {Options::Search::GetIndex} instead
220
+ GetIndexOptions = Options::Search::GetIndex
221
+
222
+ # @api private
223
+ # @deprecated use {Options::Search::GetAllIndexes} instead
224
+ GetAllIndexesOptions = Options::Search::GetAllIndexes
225
+
226
+ # @api private
227
+ # @deprecated use {Options::Search::UpsertIndex} instead
228
+ UpsertIndexOptions = Options::Search::UpsertIndex
229
+
230
+ # @api private
231
+ # @deprecated use {Options::Search::DropIndex} instead
232
+ DropIndexOptions = Options::Search::DropIndex
233
+
234
+ # @api private
235
+ # @deprecated use {Options::Search::GetIndexedDocumentsCount} instead
236
+ GetIndexedDocumentsCountOptions = Options::Search::GetIndexedDocumentsCount
237
+
238
+ # @api private
239
+ # @deprecated use {Options::Search::PauseIngest} instead
240
+ PauseIngestOptions = Options::Search::PauseIngest
241
+
242
+ # @api private
243
+ # @deprecated use {Options::Search::ResumeIngest} instead
244
+ ResumeIngestOptions = Options::Search::ResumeIngest
245
+
246
+ # @api private
247
+ # @deprecated use {Options::Search::AllowQuerying} instead
248
+ AllowQueryingOptions = Options::Search::AllowQuerying
249
+
250
+ # @api private
251
+ # @deprecated use {Options::Search::DisallowQuerying} instead
252
+ DisallowQueryingOptions = Options::Search::DisallowQuerying
253
+
254
+ # @api private
255
+ # @deprecated use {Options::Search::FreezePlan} instead
256
+ FreezePlanOptions = Options::Search::FreezePlan
257
+
258
+ # @api private
259
+ # @deprecated use {Options::Search::UnfreezePlan} instead
260
+ UnfreezePlanOptions = Options::Search::UnfreezePlan
261
+
262
+ # @api private
263
+ # @deprecated use {Options::Search::AnalyzeDocument} instead
264
+ AnalyzeDocumentOptions = Options::Search::AnalyzeDocument
198
265
  end
199
266
  end
200
267
  end