algolia 3.0.0.alpha.12 → 3.0.0.alpha.13

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 (187) hide show
  1. checksums.yaml +4 -4
  2. data/.openapi-generator/FILES +1 -0
  3. data/CHANGELOG.md +6 -0
  4. data/Gemfile.lock +4 -4
  5. data/lib/algolia/api/abtesting_client.rb +8 -4
  6. data/lib/algolia/api/analytics_client.rb +146 -282
  7. data/lib/algolia/api/ingestion_client.rb +4 -4
  8. data/lib/algolia/api/insights_client.rb +7 -7
  9. data/lib/algolia/api/recommend_client.rb +12 -12
  10. data/lib/algolia/api/search_client.rb +242 -242
  11. data/lib/algolia/models/abtesting/ab_test_response.rb +1 -1
  12. data/lib/algolia/models/analytics/search_no_result_event.rb +1 -1
  13. data/lib/algolia/models/analytics/top_search.rb +1 -1
  14. data/lib/algolia/models/analytics/top_search_with_analytics.rb +1 -1
  15. data/lib/algolia/models/ingestion/action_type.rb +2 -1
  16. data/lib/algolia/models/ingestion/source_ga4_big_query_export.rb +223 -0
  17. data/lib/algolia/models/ingestion/source_input.rb +1 -0
  18. data/lib/algolia/models/ingestion/source_type.rb +2 -1
  19. data/lib/algolia/models/ingestion/source_update_input.rb +1 -0
  20. data/lib/algolia/models/ingestion/streaming_trigger.rb +221 -0
  21. data/lib/algolia/models/ingestion/streaming_trigger_type.rb +32 -0
  22. data/lib/algolia/models/ingestion/streaming_utils_input.rb +199 -0
  23. data/lib/algolia/models/ingestion/task_create_trigger.rb +1 -0
  24. data/lib/algolia/models/ingestion/task_input.rb +2 -1
  25. data/lib/algolia/models/ingestion/trigger.rb +1 -0
  26. data/lib/algolia/models/ingestion/trigger_type.rb +2 -1
  27. data/lib/algolia/models/insights/added_to_cart_object_ids.rb +6 -6
  28. data/lib/algolia/models/insights/added_to_cart_object_ids_after_search.rb +6 -6
  29. data/lib/algolia/models/insights/clicked_filters.rb +6 -6
  30. data/lib/algolia/models/insights/clicked_object_ids.rb +6 -6
  31. data/lib/algolia/models/insights/clicked_object_ids_after_search.rb +7 -7
  32. data/lib/algolia/models/insights/converted_filters.rb +6 -6
  33. data/lib/algolia/models/insights/converted_object_ids.rb +6 -6
  34. data/lib/algolia/models/insights/converted_object_ids_after_search.rb +6 -6
  35. data/lib/algolia/models/insights/discount.rb +1 -1
  36. data/lib/algolia/models/insights/insights_events.rb +1 -1
  37. data/lib/algolia/models/insights/object_data.rb +1 -1
  38. data/lib/algolia/models/insights/object_data_after_search.rb +1 -1
  39. data/lib/algolia/models/insights/price.rb +1 -1
  40. data/lib/algolia/models/insights/purchased_object_ids.rb +6 -6
  41. data/lib/algolia/models/insights/purchased_object_ids_after_search.rb +6 -6
  42. data/lib/algolia/models/insights/viewed_filters.rb +6 -6
  43. data/lib/algolia/models/insights/viewed_object_ids.rb +6 -6
  44. data/lib/algolia/models/recommend/around_precision.rb +1 -1
  45. data/lib/algolia/models/recommend/around_precision_from_value_inner.rb +3 -0
  46. data/lib/algolia/models/recommend/around_radius.rb +1 -1
  47. data/lib/algolia/models/recommend/automatic_facet_filter.rb +4 -4
  48. data/lib/algolia/models/recommend/automatic_facet_filters.rb +1 -1
  49. data/lib/algolia/models/recommend/base_recommend_request.rb +1 -1
  50. data/lib/algolia/models/recommend/base_recommendations_query.rb +1 -1
  51. data/lib/algolia/models/recommend/base_recommended_for_you_query_parameters.rb +1 -1
  52. data/lib/algolia/models/recommend/base_search_params.rb +58 -38
  53. data/lib/algolia/models/recommend/base_search_params_without_query.rb +57 -37
  54. data/lib/algolia/models/recommend/base_search_response.rb +20 -6
  55. data/lib/algolia/models/recommend/condition.rb +32 -7
  56. data/lib/algolia/models/recommend/consequence.rb +33 -5
  57. data/lib/algolia/models/recommend/consequence_hide.rb +2 -2
  58. data/lib/algolia/models/recommend/consequence_params.rb +101 -79
  59. data/lib/algolia/models/recommend/consequence_query.rb +1 -1
  60. data/lib/algolia/models/recommend/consequence_query_object.rb +2 -2
  61. data/lib/algolia/models/recommend/deleted_at_response.rb +1 -1
  62. data/lib/algolia/models/recommend/distinct.rb +1 -1
  63. data/lib/algolia/models/recommend/edit.rb +1 -1
  64. data/lib/algolia/models/recommend/facet_filters.rb +1 -1
  65. data/lib/algolia/models/recommend/facet_ordering.rb +2 -2
  66. data/lib/algolia/models/recommend/facets.rb +2 -2
  67. data/lib/algolia/models/recommend/highlight_result_option.rb +3 -3
  68. data/lib/algolia/models/recommend/ignore_plurals.rb +1 -1
  69. data/lib/algolia/models/recommend/index_settings_as_search_params.rb +46 -44
  70. data/lib/algolia/models/recommend/numeric_filters.rb +1 -1
  71. data/lib/algolia/models/recommend/optional_filters.rb +1 -1
  72. data/lib/algolia/models/recommend/params.rb +1 -1
  73. data/lib/algolia/models/recommend/promote_object_id.rb +2 -2
  74. data/lib/algolia/models/recommend/promote_object_ids.rb +16 -2
  75. data/lib/algolia/models/recommend/ranking_info.rb +120 -7
  76. data/lib/algolia/models/recommend/re_ranking_apply_filter.rb +1 -1
  77. data/lib/algolia/models/recommend/recommend_hit.rb +3 -3
  78. data/lib/algolia/models/recommend/recommendations_hits.rb +1 -1
  79. data/lib/algolia/models/recommend/recommendations_query.rb +2 -2
  80. data/lib/algolia/models/recommend/recommendations_results.rb +21 -7
  81. data/lib/algolia/models/recommend/recommended_for_you_query.rb +1 -1
  82. data/lib/algolia/models/recommend/recommended_for_you_query_parameters.rb +102 -80
  83. data/lib/algolia/models/recommend/remove_stop_words.rb +1 -1
  84. data/lib/algolia/models/recommend/rendering_content.rb +1 -1
  85. data/lib/algolia/models/recommend/search_params_object.rb +102 -80
  86. data/lib/algolia/models/recommend/search_params_query.rb +1 -1
  87. data/lib/algolia/models/recommend/search_recommend_rules_params.rb +2 -2
  88. data/lib/algolia/models/recommend/search_recommend_rules_response.rb +17 -3
  89. data/lib/algolia/models/recommend/semantic_search.rb +2 -2
  90. data/lib/algolia/models/recommend/snippet_result_option.rb +2 -2
  91. data/lib/algolia/models/recommend/tag_filters.rb +1 -1
  92. data/lib/algolia/models/recommend/trending_facets_query.rb +1 -1
  93. data/lib/algolia/models/recommend/trending_items_query.rb +1 -1
  94. data/lib/algolia/models/recommend/typo_tolerance.rb +1 -1
  95. data/lib/algolia/models/recommend/value.rb +1 -1
  96. data/lib/algolia/models/search/add_api_key_response.rb +1 -1
  97. data/lib/algolia/models/search/api_key.rb +8 -8
  98. data/lib/algolia/models/search/around_precision.rb +1 -1
  99. data/lib/algolia/models/search/around_precision_from_value_inner.rb +3 -0
  100. data/lib/algolia/models/search/around_radius.rb +1 -1
  101. data/lib/algolia/models/search/automatic_facet_filter.rb +4 -4
  102. data/lib/algolia/models/search/automatic_facet_filters.rb +1 -1
  103. data/lib/algolia/models/search/base_index_settings.rb +44 -18
  104. data/lib/algolia/models/search/base_search_params.rb +58 -38
  105. data/lib/algolia/models/search/base_search_params_without_query.rb +57 -37
  106. data/lib/algolia/models/search/base_search_response.rb +20 -6
  107. data/lib/algolia/models/search/batch_dictionary_entries_params.rb +3 -3
  108. data/lib/algolia/models/search/batch_response.rb +2 -2
  109. data/lib/algolia/models/search/browse_params_object.rb +103 -81
  110. data/lib/algolia/models/search/browse_response.rb +23 -8
  111. data/lib/algolia/models/search/built_in_operation.rb +2 -2
  112. data/lib/algolia/models/search/condition.rb +32 -7
  113. data/lib/algolia/models/search/consequence.rb +33 -5
  114. data/lib/algolia/models/search/consequence_hide.rb +2 -2
  115. data/lib/algolia/models/search/consequence_params.rb +101 -79
  116. data/lib/algolia/models/search/consequence_query.rb +1 -1
  117. data/lib/algolia/models/search/consequence_query_object.rb +2 -2
  118. data/lib/algolia/models/search/created_at_response.rb +1 -1
  119. data/lib/algolia/models/search/cursor.rb +1 -1
  120. data/lib/algolia/models/search/delete_by_params.rb +4 -4
  121. data/lib/algolia/models/search/deleted_at_response.rb +1 -1
  122. data/lib/algolia/models/search/dictionary_entry.rb +5 -5
  123. data/lib/algolia/models/search/dictionary_language.rb +2 -2
  124. data/lib/algolia/models/search/dictionary_settings_params.rb +1 -1
  125. data/lib/algolia/models/search/distinct.rb +1 -1
  126. data/lib/algolia/models/search/edit.rb +1 -1
  127. data/lib/algolia/models/search/facet_filters.rb +1 -1
  128. data/lib/algolia/models/search/facet_hits.rb +2 -2
  129. data/lib/algolia/models/search/facet_ordering.rb +2 -2
  130. data/lib/algolia/models/search/facets.rb +2 -2
  131. data/lib/algolia/models/search/get_api_key_response.rb +8 -8
  132. data/lib/algolia/models/search/get_objects_request.rb +3 -3
  133. data/lib/algolia/models/search/get_objects_response.rb +1 -1
  134. data/lib/algolia/models/search/has_pending_mappings_response.rb +1 -1
  135. data/lib/algolia/models/search/highlight_result_option.rb +3 -3
  136. data/lib/algolia/models/search/hit.rb +4 -4
  137. data/lib/algolia/models/search/ignore_plurals.rb +1 -1
  138. data/lib/algolia/models/search/index_settings.rb +89 -61
  139. data/lib/algolia/models/search/index_settings_as_search_params.rb +46 -44
  140. data/lib/algolia/models/search/log.rb +39 -11
  141. data/lib/algolia/models/search/log_query.rb +1 -1
  142. data/lib/algolia/models/search/multiple_batch_response.rb +2 -2
  143. data/lib/algolia/models/search/numeric_filters.rb +1 -1
  144. data/lib/algolia/models/search/operation_index_params.rb +2 -2
  145. data/lib/algolia/models/search/optional_filters.rb +1 -1
  146. data/lib/algolia/models/search/params.rb +1 -1
  147. data/lib/algolia/models/search/promote_object_id.rb +2 -2
  148. data/lib/algolia/models/search/promote_object_ids.rb +16 -2
  149. data/lib/algolia/models/search/ranking_info.rb +120 -7
  150. data/lib/algolia/models/search/re_ranking_apply_filter.rb +1 -1
  151. data/lib/algolia/models/search/remove_stop_words.rb +1 -1
  152. data/lib/algolia/models/search/rendering_content.rb +1 -1
  153. data/lib/algolia/models/search/rule.rb +23 -5
  154. data/lib/algolia/models/search/save_object_response.rb +3 -3
  155. data/lib/algolia/models/search/save_synonym_response.rb +1 -1
  156. data/lib/algolia/models/search/search_dictionary_entries_params.rb +18 -4
  157. data/lib/algolia/models/search/search_dictionary_entries_response.rb +251 -0
  158. data/lib/algolia/models/search/search_for_facet_values_request.rb +1 -1
  159. data/lib/algolia/models/search/search_for_facet_values_response.rb +1 -0
  160. data/lib/algolia/models/search/search_for_facets.rb +103 -81
  161. data/lib/algolia/models/search/search_for_facets_options.rb +2 -2
  162. data/lib/algolia/models/search/search_for_hits.rb +103 -81
  163. data/lib/algolia/models/search/search_for_hits_options.rb +1 -1
  164. data/lib/algolia/models/search/search_hits.rb +2 -1
  165. data/lib/algolia/models/search/search_params_object.rb +102 -80
  166. data/lib/algolia/models/search/search_params_query.rb +1 -1
  167. data/lib/algolia/models/search/search_response.rb +22 -7
  168. data/lib/algolia/models/search/search_rules_params.rb +8 -20
  169. data/lib/algolia/models/search/search_rules_response.rb +2 -2
  170. data/lib/algolia/models/search/search_synonyms_params.rb +16 -2
  171. data/lib/algolia/models/search/search_synonyms_response.rb +2 -2
  172. data/lib/algolia/models/search/search_user_ids_params.rb +15 -1
  173. data/lib/algolia/models/search/search_user_ids_response.rb +16 -2
  174. data/lib/algolia/models/search/secured_api_key_restrictions.rb +5 -5
  175. data/lib/algolia/models/search/semantic_search.rb +2 -2
  176. data/lib/algolia/models/search/snippet_result_option.rb +2 -2
  177. data/lib/algolia/models/search/tag_filters.rb +1 -1
  178. data/lib/algolia/models/search/time_range.rb +2 -2
  179. data/lib/algolia/models/search/typo_tolerance.rb +1 -1
  180. data/lib/algolia/models/search/updated_at_response.rb +1 -1
  181. data/lib/algolia/models/search/updated_at_with_object_id_response.rb +2 -2
  182. data/lib/algolia/models/search/updated_rule_response.rb +2 -2
  183. data/lib/algolia/models/search/user_hit.rb +1 -1
  184. data/lib/algolia/models/search/user_id.rb +1 -1
  185. data/lib/algolia/models/search/value.rb +1 -1
  186. data/lib/algolia/version.rb +1 -1
  187. metadata +7 -2
@@ -7,23 +7,23 @@ module Algolia
7
7
  module Insights
8
8
  # Use this event to track when users make a purchase after a previous Algolia request. If you're building your category pages with Algolia, you'll also use this event.
9
9
  class PurchasedObjectIDsAfterSearch
10
- # The name of the event, up to 64 ASCII characters. Consider naming events consistently—for example, by adopting Segment's [object-action](https://segment.com/academy/collecting-data/naming-conventions-for-clean-data/#the-object-action-framework) framework.
10
+ # Event name, up to 64 ASCII characters. Consider naming events consistently—for example, by adopting Segment's [object-action](https://segment.com/academy/collecting-data/naming-conventions-for-clean-data/#the-object-action-framework) framework.
11
11
  attr_accessor :event_name
12
12
 
13
13
  attr_accessor :event_type
14
14
 
15
15
  attr_accessor :event_subtype
16
16
 
17
- # The name of an Algolia index.
17
+ # Index name to which the event's items belong.
18
18
  attr_accessor :index
19
19
 
20
- # The object IDs of the records that are part of the event.
20
+ # Object IDs of the records that are part of the event.
21
21
  attr_accessor :object_ids
22
22
 
23
- # An anonymous or pseudonymous user identifier. > **Note**: Never include personally identifiable information in user tokens.
23
+ # Anonymous or pseudonymous user identifier. Don't use personally identifiable information in user tokens. For more information, see [User token](https://www.algolia.com/doc/guides/sending-events/concepts/usertoken/).
24
24
  attr_accessor :user_token
25
25
 
26
- # An identifier for authenticated users. > **Note**: Never include personally identifiable information in user tokens.
26
+ # Identifier for authenticated users. When the user signs in, you can get an identifier from your system and send it as `authenticatedUserToken`. This lets you keep using the `userToken` from before the user signed in, while providing a reliable way to identify users across sessions. Don't use personally identifiable information in user tokens. For more information, see [User token](https://www.algolia.com/doc/guides/sending-events/concepts/usertoken/).
27
27
  attr_accessor :authenticated_user_token
28
28
 
29
29
  # Three-letter [currency code](https://www.iso.org/iso-4217-currency-codes.html).
@@ -32,7 +32,7 @@ module Algolia
32
32
  # Extra information about the records involved in a purchase or add-to-cart events. If provided, it must be the same length as `objectIDs`.
33
33
  attr_accessor :object_data
34
34
 
35
- # The timestamp of the event in milliseconds in [Unix epoch time](https://wikipedia.org/wiki/Unix_time). By default, the Insights API uses the time it receives an event as its timestamp.
35
+ # Timestamp of the event in milliseconds in [Unix epoch time](https://wikipedia.org/wiki/Unix_time). By default, the Insights API uses the time it receives an event as its timestamp.
36
36
  attr_accessor :timestamp
37
37
 
38
38
  attr_accessor :value
@@ -7,24 +7,24 @@ module Algolia
7
7
  module Insights
8
8
  # Use this method to capture active filters. For example, when browsing a category page, users see content filtered on that specific category.
9
9
  class ViewedFilters
10
- # The name of the event, up to 64 ASCII characters. Consider naming events consistently—for example, by adopting Segment's [object-action](https://segment.com/academy/collecting-data/naming-conventions-for-clean-data/#the-object-action-framework) framework.
10
+ # Event name, up to 64 ASCII characters. Consider naming events consistently—for example, by adopting Segment's [object-action](https://segment.com/academy/collecting-data/naming-conventions-for-clean-data/#the-object-action-framework) framework.
11
11
  attr_accessor :event_name
12
12
 
13
13
  attr_accessor :event_type
14
14
 
15
- # The name of an Algolia index.
15
+ # Index name to which the event's items belong.
16
16
  attr_accessor :index
17
17
 
18
- # Facet filters. Each facet filter string must be URL-encoded, such as, `discount:10%25`.
18
+ # Applied facet filters. Facet filters are `facet:value` pairs. Facet values must be URL-encoded, such as, `discount:10%25`.
19
19
  attr_accessor :filters
20
20
 
21
- # An anonymous or pseudonymous user identifier. > **Note**: Never include personally identifiable information in user tokens.
21
+ # Anonymous or pseudonymous user identifier. Don't use personally identifiable information in user tokens. For more information, see [User token](https://www.algolia.com/doc/guides/sending-events/concepts/usertoken/).
22
22
  attr_accessor :user_token
23
23
 
24
- # An identifier for authenticated users. > **Note**: Never include personally identifiable information in user tokens.
24
+ # Identifier for authenticated users. When the user signs in, you can get an identifier from your system and send it as `authenticatedUserToken`. This lets you keep using the `userToken` from before the user signed in, while providing a reliable way to identify users across sessions. Don't use personally identifiable information in user tokens. For more information, see [User token](https://www.algolia.com/doc/guides/sending-events/concepts/usertoken/).
25
25
  attr_accessor :authenticated_user_token
26
26
 
27
- # The timestamp of the event in milliseconds in [Unix epoch time](https://wikipedia.org/wiki/Unix_time). By default, the Insights API uses the time it receives an event as its timestamp.
27
+ # Timestamp of the event in milliseconds in [Unix epoch time](https://wikipedia.org/wiki/Unix_time). By default, the Insights API uses the time it receives an event as its timestamp.
28
28
  attr_accessor :timestamp
29
29
 
30
30
  class EnumAttributeValidator
@@ -7,24 +7,24 @@ module Algolia
7
7
  module Insights
8
8
  # Use this event to track when users viewed items in the search results.
9
9
  class ViewedObjectIDs
10
- # The name of the event, up to 64 ASCII characters. Consider naming events consistently—for example, by adopting Segment's [object-action](https://segment.com/academy/collecting-data/naming-conventions-for-clean-data/#the-object-action-framework) framework.
10
+ # Event name, up to 64 ASCII characters. Consider naming events consistently—for example, by adopting Segment's [object-action](https://segment.com/academy/collecting-data/naming-conventions-for-clean-data/#the-object-action-framework) framework.
11
11
  attr_accessor :event_name
12
12
 
13
13
  attr_accessor :event_type
14
14
 
15
- # The name of an Algolia index.
15
+ # Index name to which the event's items belong.
16
16
  attr_accessor :index
17
17
 
18
- # The object IDs of the records that are part of the event.
18
+ # Object IDs of the records that are part of the event.
19
19
  attr_accessor :object_ids
20
20
 
21
- # An anonymous or pseudonymous user identifier. > **Note**: Never include personally identifiable information in user tokens.
21
+ # Anonymous or pseudonymous user identifier. Don't use personally identifiable information in user tokens. For more information, see [User token](https://www.algolia.com/doc/guides/sending-events/concepts/usertoken/).
22
22
  attr_accessor :user_token
23
23
 
24
- # An identifier for authenticated users. > **Note**: Never include personally identifiable information in user tokens.
24
+ # Identifier for authenticated users. When the user signs in, you can get an identifier from your system and send it as `authenticatedUserToken`. This lets you keep using the `userToken` from before the user signed in, while providing a reliable way to identify users across sessions. Don't use personally identifiable information in user tokens. For more information, see [User token](https://www.algolia.com/doc/guides/sending-events/concepts/usertoken/).
25
25
  attr_accessor :authenticated_user_token
26
26
 
27
- # The timestamp of the event in milliseconds in [Unix epoch time](https://wikipedia.org/wiki/Unix_time). By default, the Insights API uses the time it receives an event as its timestamp.
27
+ # Timestamp of the event in milliseconds in [Unix epoch time](https://wikipedia.org/wiki/Unix_time). By default, the Insights API uses the time it receives an event as its timestamp.
28
28
  attr_accessor :timestamp
29
29
 
30
30
  class EnumAttributeValidator
@@ -5,7 +5,7 @@ require 'time'
5
5
 
6
6
  module Algolia
7
7
  module Recommend
8
- # Precision of a geographical search (in meters), to [group results that are more or less the same distance from a central point](https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/in-depth/geo-ranking-precision/).
8
+ # Precision of a coordinate-based search in meters to group results with similar distances. The Geo ranking criterion considers all matches within the same range of distances to be equal.
9
9
  module AroundPrecision
10
10
  class << self
11
11
  # List of class defined in oneOf (OpenAPI v3)
@@ -5,9 +5,12 @@ require 'time'
5
5
 
6
6
  module Algolia
7
7
  module Recommend
8
+ # Range object with lower and upper values in meters to define custom ranges.
8
9
  class AroundPrecisionFromValueInner
10
+ # Lower boundary of a range in meters. The Geo ranking criterion considers all records within the range to be equal.
9
11
  attr_accessor :from
10
12
 
13
+ # Upper boundary of a range in meters. The Geo ranking criterion considers all records within the range to be equal.
11
14
  attr_accessor :value
12
15
 
13
16
  # Attribute mapping from ruby-style variable name to JSON key.
@@ -5,7 +5,7 @@ require 'time'
5
5
 
6
6
  module Algolia
7
7
  module Recommend
8
- # [Maximum radius](https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/#increase-the-search-radius) for a geographical search (in meters).
8
+ # Maximum radius for a search around a central location. This parameter works in combination with the `aroundLatLng` and `aroundLatLngViaIP` parameters. By default, the search radius is determined automatically from the density of hits around the central location. The search radius is small if there are many hits close to the central coordinates.
9
9
  module AroundRadius
10
10
  class << self
11
11
  # List of class defined in oneOf (OpenAPI v3)
@@ -5,15 +5,15 @@ require 'time'
5
5
 
6
6
  module Algolia
7
7
  module Recommend
8
- # Automatic facet Filter.
8
+ # Filter or optional filter to be applied to the search.
9
9
  class AutomaticFacetFilter
10
- # Attribute to filter on. This must match a facet placeholder in the Rule's pattern.
10
+ # Facet name to be applied as filter. The name must match placeholders in the `pattern` parameter. For example, with `pattern: {facet:genre}`, `automaticFacetFilters` must be `genre`.
11
11
  attr_accessor :facet
12
12
 
13
- # Score for the filter. Typically used for optional or disjunctive filters.
13
+ # Filter scores to give different weights to individual filters.
14
14
  attr_accessor :score
15
15
 
16
- # Whether the filter is disjunctive (true) or conjunctive (false).
16
+ # Whether the filter is disjunctive or conjunctive. If true the filter has multiple matches, multiple occurences are combined with the logical `OR` operation. If false, multiple occurences are combined with the logical `AND` operation.
17
17
  attr_accessor :disjunctive
18
18
 
19
19
  # Attribute mapping from ruby-style variable name to JSON key.
@@ -5,7 +5,7 @@ require 'time'
5
5
 
6
6
  module Algolia
7
7
  module Recommend
8
- # Names of facets to which automatic filtering must be applied; they must match the facet name of a facet value placeholder in the query pattern.
8
+ # Filter to be applied to the search. You can use this to respond to search queries that match a facet value. For example, if users search for \"comedy\", which matches a facet value of the \"genre\" facet, you can filter the results to show the top-ranked comedy movies.
9
9
  module AutomaticFacetFilters
10
10
  class << self
11
11
  # List of class defined in oneOf (OpenAPI v3)
@@ -6,7 +6,7 @@ require 'time'
6
6
  module Algolia
7
7
  module Recommend
8
8
  class BaseRecommendRequest
9
- # Algolia index name.
9
+ # Index name.
10
10
  attr_accessor :index_name
11
11
 
12
12
  # Recommendations with a confidence score lower than `threshold` won't appear in results. > **Note**: Each recommendation has a confidence score of 0 to 100. The closer the score is to 100, the more relevant the recommendations are.
@@ -8,7 +8,7 @@ module Algolia
8
8
  class BaseRecommendationsQuery
9
9
  attr_accessor :model
10
10
 
11
- # Unique object identifier.
11
+ # Unique record identifier.
12
12
  attr_accessor :object_id
13
13
 
14
14
  attr_accessor :query_parameters
@@ -6,7 +6,7 @@ require 'time'
6
6
  module Algolia
7
7
  module Recommend
8
8
  class BaseRecommendedForYouQueryParameters
9
- # Associates a [user token](https://www.algolia.com/doc/guides/sending-events/concepts/usertoken/) with the current search.
9
+ # Unique pseudonymous or anonymous user identifier. This helps with analytics and click and conversion events. For more information, see [user token](https://www.algolia.com/doc/guides/sending-events/concepts/usertoken/).
10
10
  attr_accessor :user_token
11
11
 
12
12
  # Attribute mapping from ruby-style variable name to JSON key.
@@ -6,13 +6,13 @@ require 'time'
6
6
  module Algolia
7
7
  module Recommend
8
8
  class BaseSearchParams
9
- # Text to search for in an index.
9
+ # Search query.
10
10
  attr_accessor :query
11
11
 
12
- # Overrides the query parameter and performs a more generic search.
12
+ # Keywords to be used instead of the search query to conduct a more broader search. Using the `similarQuery` parameter changes other settings: - `queryType` is set to `prefixNone`. - `removeStopWords` is set to true. - `words` is set as the first ranking criterion. - All remaining words are treated as `optionalWords`. Since the `similarQuery` is supposed to do a broad search, they usually return many results. Combine it with `filters` to narrow down the list of results.
13
13
  attr_accessor :similar_query
14
14
 
15
- # [Filter](https://www.algolia.com/doc/guides/managing-results/refine-results/filtering/) the query with numeric, facet, or tag filters.
15
+ # Filter the search so that only records with matching values are included in the results. These filters are supported: - **Numeric filters.** `<facet> <op> <number>`, where `<op>` is one of `<`, `<=`, `=`, `!=`, `>`, `>=`. - **Ranges.** `<facet>:<lower> TO <upper>` where `<lower>` and `<upper>` are the lower and upper limits of the range (inclusive). - **Facet filters.** `<facet>:<value>` where `<facet>` is a facet attribute (case-sensitive) and `<value>` a facet value. - **Tag filters.** `_tags:<value>` or just `<value>` (case-sensitive). - **Boolean filters.** `<facet>: true | false`. You can combine filters with `AND`, `OR`, and `NOT` operators with the following restrictions: - You can only combine filters of the same type with `OR`. **Not supported:** `facet:value OR num > 3`. - You can't use `NOT` with combinations of filters. **Not supported:** `NOT(facet:value OR facet:value)` - You can't combine conjunctions (`AND`) with `OR`. **Not supported:** `facet:value OR (facet:value AND facet:value)` Use quotes around your filters, if the facet attribute name or facet value has spaces, keywords (`OR`, `AND`, `NOT`), or quotes. If a facet attribute is an array, the filter matches if it matches at least one element of the array. For more information, see [Filters](https://www.algolia.com/doc/guides/managing-results/refine-results/filtering/).
16
16
  attr_accessor :filters
17
17
 
18
18
  attr_accessor :facet_filters
@@ -23,80 +23,77 @@ module Algolia
23
23
 
24
24
  attr_accessor :tag_filters
25
25
 
26
- # Determines how to calculate [filter scores](https://www.algolia.com/doc/guides/managing-results/refine-results/filtering/in-depth/filter-scoring/#accumulating-scores-with-sumorfiltersscores). If `false`, maximum score is kept. If `true`, score is summed.
26
+ # Whether to sum all filter scores. If true, all filter scores are summed. Otherwise, the maximum filter score is kept. For more information, see [filter scores](https://www.algolia.com/doc/guides/managing-results/refine-results/filtering/in-depth/filter-scoring/#accumulating-scores-with-sumorfiltersscores).
27
27
  attr_accessor :sum_or_filters_scores
28
28
 
29
- # Restricts a query to only look at a subset of your [searchable attributes](https://www.algolia.com/doc/guides/managing-results/must-do/searchable-attributes/).
29
+ # Restricts a search to a subset of your searchable attributes.
30
30
  attr_accessor :restrict_searchable_attributes
31
31
 
32
- # Returns [facets](https://www.algolia.com/doc/guides/managing-results/refine-results/faceting/#contextual-facet-values-and-counts), their facet values, and the number of matching facet values.
32
+ # Facets for which to retrieve facet values that match the search criteria and the number of matching facet values. To retrieve all facets, use the wildcard character `*`. For more information, see [facets](https://www.algolia.com/doc/guides/managing-results/refine-results/faceting/#contextual-facet-values-and-counts).
33
33
  attr_accessor :facets
34
34
 
35
- # Forces faceting to be applied after [de-duplication](https://www.algolia.com/doc/guides/managing-results/refine-results/grouping/) (with the distinct feature). Alternatively, the `afterDistinct` [modifier](https://www.algolia.com/doc/api-reference/api-parameters/attributesForFaceting/#modifiers) of `attributesForFaceting` allows for more granular control.
35
+ # Whether faceting should be applied after deduplication with `distinct`. This leads to accurate facet counts when using faceting in combination with `distinct`. It's usually better to use `afterDistinct` modifiers in the `attributesForFaceting` setting, as `facetingAfterDistinct` only computes correct facet counts if all records have the same facet values for the `attributeForDistinct`.
36
36
  attr_accessor :faceting_after_distinct
37
37
 
38
- # Page to retrieve (the first page is `0`, not `1`).
38
+ # Page of search results to retrieve.
39
39
  attr_accessor :page
40
40
 
41
- # Specifies the offset of the first hit to return. > **Note**: Using `page` and `hitsPerPage` is the recommended method for [paging results](https://www.algolia.com/doc/guides/building-search-ui/ui-and-ux-patterns/pagination/js/). However, you can use `offset` and `length` to implement [an alternative approach to paging](https://www.algolia.com/doc/guides/building-search-ui/ui-and-ux-patterns/pagination/js/#retrieving-a-subset-of-records-with-offset-and-length).
41
+ # Position of the first hit to retrieve.
42
42
  attr_accessor :offset
43
43
 
44
- # Sets the number of hits to retrieve (for use with `offset`). > **Note**: Using `page` and `hitsPerPage` is the recommended method for [paging results](https://www.algolia.com/doc/guides/building-search-ui/ui-and-ux-patterns/pagination/js/). However, you can use `offset` and `length` to implement [an alternative approach to paging](https://www.algolia.com/doc/guides/building-search-ui/ui-and-ux-patterns/pagination/js/#retrieving-a-subset-of-records-with-offset-and-length).
44
+ # Number of hits to retrieve (used in combination with `offset`).
45
45
  attr_accessor :length
46
46
 
47
- # Search for entries [around a central location](https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/#filter-around-a-central-point), enabling a geographical search within a circular area.
47
+ # Coordinates for the center of a circle, expressed as a comma-separated string of latitude and longitude. Only records included within circle around this central location are included in the results. The radius of the circle is determined by the `aroundRadius` and `minimumAroundRadius` settings. This parameter is ignored if you also specify `insidePolygon` or `insideBoundingBox`.
48
48
  attr_accessor :around_lat_lng
49
49
 
50
- # Search for entries around a location. The location is automatically computed from the requester's IP address.
50
+ # Whether to obtain the coordinates from the request's IP address.
51
51
  attr_accessor :around_lat_lng_via_ip
52
52
 
53
53
  attr_accessor :around_radius
54
54
 
55
55
  attr_accessor :around_precision
56
56
 
57
- # Minimum radius (in meters) used for a geographical search when `aroundRadius` isn't set.
57
+ # Minimum radius (in meters) for a search around a location when `aroundRadius` isn't set.
58
58
  attr_accessor :minimum_around_radius
59
59
 
60
- # Search inside a [rectangular area](https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/#filtering-inside-rectangular-or-polygonal-areas) (in geographical coordinates).
60
+ # Coordinates for a rectangular area in which to search. Each bounding box is defined by the two opposite points of its diagonal, and expressed as latitude and longitude pair: `[p1 lat, p1 long, p2 lat, p2 long]`. Provide multiple bounding boxes as nested arrays. For more information, see [rectangular area](https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/#filtering-inside-rectangular-or-polygonal-areas).
61
61
  attr_accessor :inside_bounding_box
62
62
 
63
- # Search inside a [polygon](https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/#filtering-inside-rectangular-or-polygonal-areas) (in geographical coordinates).
63
+ # Coordinates of a polygon in which to search. Polygons are defined by 3 to 10,000 points. Each point is represented by its latitude and longitude. Provide multiple polygons as nested arrays. For more information, see [filtering inside polygons](https://www.algolia.com/doc/guides/managing-results/refine-results/geolocation/#filtering-inside-rectangular-or-polygonal-areas). This parameter is ignored, if you also specify `insideBoundingBox`.
64
64
  attr_accessor :inside_polygon
65
65
 
66
- # Changes the default values of parameters that work best for a natural language query, such as `ignorePlurals`, `removeStopWords`, `removeWordsIfNoResults`, `analyticsTags`, and `ruleContexts`. These parameters work well together when the query consists of fuller natural language strings instead of keywords, for example when processing voice search queries.
66
+ # ISO language codes that adjust settings that are useful for processing natural language queries (as opposed to keyword searches): - Sets `removeStopWords` and `ignorePlurals` to the list of provided languages. - Sets `removeWordsIfNoResults` to `allOptional`. - Adds a `natural_language` attribute to `ruleContexts` and `analyticsTags`.
67
67
  attr_accessor :natural_languages
68
68
 
69
- # Assigns [rule contexts](https://www.algolia.com/doc/guides/managing-results/rules/rules-overview/how-to/customize-search-results-by-platform/#whats-a-context) to search queries.
69
+ # Assigns a rule context to the search query. [Rule contexts](https://www.algolia.com/doc/guides/managing-results/rules/rules-overview/how-to/customize-search-results-by-platform/#whats-a-context) are strings that you can use to trigger matching rules.
70
70
  attr_accessor :rule_contexts
71
71
 
72
- # Defines how much [Personalization affects results](https://www.algolia.com/doc/guides/personalization/personalizing-results/in-depth/configuring-personalization/#understanding-personalization-impact).
72
+ # Impact that Personalization should have on this search. The higher this value is, the more Personalization determines the ranking compared to other factors. For more information, see [Understanding Personalization impact](https://www.algolia.com/doc/guides/personalization/personalizing-results/in-depth/configuring-personalization/#understanding-personalization-impact).
73
73
  attr_accessor :personalization_impact
74
74
 
75
- # Associates a [user token](https://www.algolia.com/doc/guides/sending-events/concepts/usertoken/) with the current search.
75
+ # Unique pseudonymous or anonymous user identifier. This helps with analytics and click and conversion events. For more information, see [user token](https://www.algolia.com/doc/guides/sending-events/concepts/usertoken/).
76
76
  attr_accessor :user_token
77
77
 
78
- # Incidates whether the search response includes [detailed ranking information](https://www.algolia.com/doc/guides/building-search-ui/going-further/backend-search/in-depth/understanding-the-api-response/#ranking-information).
78
+ # Whether the search response should include detailed ranking information.
79
79
  attr_accessor :get_ranking_info
80
80
 
81
- # Enriches the API's response with information about how the query was processed.
82
- attr_accessor :explain
83
-
84
- # Whether to take into account an index's synonyms for a particular search.
81
+ # Whether to take into account an index's synonyms for this search.
85
82
  attr_accessor :synonyms
86
83
 
87
- # Indicates whether a query ID parameter is included in the search response. This is required for [tracking click and conversion events](https://www.algolia.com/doc/guides/sending-events/concepts/event-types/#events-related-to-algolia-requests).
84
+ # Whether to include a `queryID` attribute in the response. The query ID is a unique identifier for a search query and is required for tracking [click and conversion events](https://www.algolia.com/guides/sending-events/getting-started/).
88
85
  attr_accessor :click_analytics
89
86
 
90
- # Indicates whether this query will be included in [analytics](https://www.algolia.com/doc/guides/search-analytics/guides/exclude-queries/).
87
+ # Whether this search will be included in Analytics.
91
88
  attr_accessor :analytics
92
89
 
93
90
  # Tags to apply to the query for [segmenting analytics data](https://www.algolia.com/doc/guides/search-analytics/guides/segments/).
94
91
  attr_accessor :analytics_tags
95
92
 
96
- # Whether to include or exclude a query from the processing-time percentile computation.
93
+ # Whether to include this search when calculating processing-time percentiles.
97
94
  attr_accessor :percentile_computation
98
95
 
99
- # Incidates whether this search will be considered in A/B testing.
96
+ # Whether to enable A/B testing for this search.
100
97
  attr_accessor :enable_ab_test
101
98
 
102
99
  # Attribute mapping from ruby-style variable name to JSON key.
@@ -128,7 +125,6 @@ module Algolia
128
125
  :personalization_impact => :personalizationImpact,
129
126
  :user_token => :userToken,
130
127
  :get_ranking_info => :getRankingInfo,
131
- :explain => :explain,
132
128
  :synonyms => :synonyms,
133
129
  :click_analytics => :clickAnalytics,
134
130
  :analytics => :analytics,
@@ -172,7 +168,6 @@ module Algolia
172
168
  :personalization_impact => :Integer,
173
169
  :user_token => :String,
174
170
  :get_ranking_info => :Boolean,
175
- :explain => :'Array<String>',
176
171
  :synonyms => :Boolean,
177
172
  :click_analytics => :Boolean,
178
173
  :analytics => :Boolean,
@@ -328,12 +323,6 @@ module Algolia
328
323
  self.get_ranking_info = attributes[:get_ranking_info]
329
324
  end
330
325
 
331
- if attributes.key?(:explain)
332
- if (value = attributes[:explain]).is_a?(Array)
333
- self.explain = value
334
- end
335
- end
336
-
337
326
  if attributes.key?(:synonyms)
338
327
  self.synonyms = attributes[:synonyms]
339
328
  end
@@ -361,6 +350,20 @@ module Algolia
361
350
  end
362
351
  end
363
352
 
353
+ # Custom attribute writer method with validation
354
+ # @param [Object] page Value to be assigned
355
+ def page=(page)
356
+ if page.nil?
357
+ raise ArgumentError, 'page cannot be nil'
358
+ end
359
+
360
+ if page < 0
361
+ raise ArgumentError, 'invalid value for "page", must be greater than or equal to 0.'
362
+ end
363
+
364
+ @page = page
365
+ end
366
+
364
367
  # Custom attribute writer method with validation
365
368
  # @param [Object] length Value to be assigned
366
369
  def length=(length)
@@ -393,6 +396,24 @@ module Algolia
393
396
  @minimum_around_radius = minimum_around_radius
394
397
  end
395
398
 
399
+ # Custom attribute writer method with validation
400
+ # @param [Object] personalization_impact Value to be assigned
401
+ def personalization_impact=(personalization_impact)
402
+ if personalization_impact.nil?
403
+ raise ArgumentError, 'personalization_impact cannot be nil'
404
+ end
405
+
406
+ if personalization_impact > 100
407
+ raise ArgumentError, 'invalid value for "personalization_impact", must be smaller than or equal to 100.'
408
+ end
409
+
410
+ if personalization_impact < 0
411
+ raise ArgumentError, 'invalid value for "personalization_impact", must be greater than or equal to 0.'
412
+ end
413
+
414
+ @personalization_impact = personalization_impact
415
+ end
416
+
396
417
  # Checks equality by comparing each attribute.
397
418
  # @param [Object] Object to be compared
398
419
  def ==(other)
@@ -425,7 +446,6 @@ module Algolia
425
446
  personalization_impact == other.personalization_impact &&
426
447
  user_token == other.user_token &&
427
448
  get_ranking_info == other.get_ranking_info &&
428
- explain == other.explain &&
429
449
  synonyms == other.synonyms &&
430
450
  click_analytics == other.click_analytics &&
431
451
  analytics == other.analytics &&
@@ -444,7 +464,7 @@ module Algolia
444
464
  # @return [Integer] Hash code
445
465
  def hash
446
466
  [query, similar_query, filters, facet_filters, optional_filters, numeric_filters, tag_filters, sum_or_filters_scores, restrict_searchable_attributes, facets,
447
- faceting_after_distinct, page, offset, length, around_lat_lng, around_lat_lng_via_ip, around_radius, around_precision, minimum_around_radius, inside_bounding_box, inside_polygon, natural_languages, rule_contexts, personalization_impact, user_token, get_ranking_info, explain, synonyms, click_analytics, analytics, analytics_tags, percentile_computation, enable_ab_test].hash
467
+ faceting_after_distinct, page, offset, length, around_lat_lng, around_lat_lng_via_ip, around_radius, around_precision, minimum_around_radius, inside_bounding_box, inside_polygon, natural_languages, rule_contexts, personalization_impact, user_token, get_ranking_info, synonyms, click_analytics, analytics, analytics_tags, percentile_computation, enable_ab_test].hash
448
468
  end
449
469
 
450
470
  # Builds the object from hash