algolia 3.33.0 → 3.34.1
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.
- checksums.yaml +4 -4
- data/.github/workflows/do-not-edit-this-repository.yml +1 -1
- data/.github/workflows/issue.yml +2 -7
- data/.github/workflows/release.yml +1 -1
- data/CHANGELOG.md +15 -0
- data/Gemfile.lock +1 -1
- data/lib/algolia/api/composition_client.rb +56 -0
- data/lib/algolia/models/abtesting/ab_test_configuration.rb +10 -1
- data/lib/algolia/models/abtesting/estimate_configuration.rb +10 -1
- data/lib/algolia/models/abtesting/feature_filters.rb +228 -0
- data/lib/algolia/models/composition/composition.rb +16 -4
- data/lib/algolia/models/composition/composition_run_applied_rules.rb +1 -1
- data/lib/algolia/models/composition/composition_run_search_response.rb +1 -1
- data/lib/algolia/models/composition/condition.rb +14 -4
- data/lib/algolia/models/composition/params.rb +22 -11
- data/lib/algolia/models/composition/results_injected_item_applied_rules_info_response.rb +1 -1
- data/lib/algolia/models/composition/results_injected_item_info_response.rb +1 -0
- data/lib/algolia/models/composition/search_results_item.rb +44 -45
- data/lib/algolia/models/search/acl.rb +17 -1
- data/lib/algolia/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 8189a4e0cfb23cab2ef3d512f074ea026e2a1bd034fb76edad6258cd8670f5f7
|
|
4
|
+
data.tar.gz: e6c801ad5cd7a3ee902cccd82fbb76196be67baff93da35c5812ce67147f92a5
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: efae6679ac62a8194a5df95e09989fb706d139b79b3550305f31ef82664002c50b28a5b8fa86736f01157f2c88148e60624ead81634c6226e2a57abc2a5c266f
|
|
7
|
+
data.tar.gz: 979c0aecb5b39fd70e07261d049e707650d2ca764f615f72a360357fa70d1218642f0d46168d7f5601fb233460e5b30958f54369d7f2083147da1d86e514f144
|
data/.github/workflows/issue.yml
CHANGED
data/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,18 @@
|
|
|
1
|
+
## [3.34.1](https://github.com/algolia/algoliasearch-client-ruby/compare/3.34.0...3.34.1)
|
|
2
|
+
|
|
3
|
+
- [54606b3b2](https://github.com/algolia/api-clients-automation/commit/54606b3b2) refactor(specs): extract `results` field in a dedicated directory ([#5739](https://github.com/algolia/api-clients-automation/pull/5739)) by [@ClaraMuller](https://github.com/ClaraMuller/)
|
|
4
|
+
- [3296a5033](https://github.com/algolia/api-clients-automation/commit/3296a5033) chore(deps): dependencies 2025-11-24 ([#5653](https://github.com/algolia/api-clients-automation/pull/5653)) by [@algolia-bot](https://github.com/algolia-bot/)
|
|
5
|
+
- [5dabdc540](https://github.com/algolia/api-clients-automation/commit/5dabdc540) refactor(specs): re-organise response for Composition API ([#5744](https://github.com/algolia/api-clients-automation/pull/5744)) by [@ClaraMuller](https://github.com/ClaraMuller/)
|
|
6
|
+
- [3d86676b0](https://github.com/algolia/api-clients-automation/commit/3d86676b0) fix(specs): update list with NLU permissions ([#5769](https://github.com/algolia/api-clients-automation/pull/5769)) by [@MarioAlexandruDan](https://github.com/MarioAlexandruDan/)
|
|
7
|
+
|
|
8
|
+
## [3.34.0](https://github.com/algolia/algoliasearch-client-ruby/compare/3.33.0...3.34.0)
|
|
9
|
+
|
|
10
|
+
- [5335918a5](https://github.com/algolia/api-clients-automation/commit/5335918a5) chore(scripts): update the jira action ([#5678](https://github.com/algolia/api-clients-automation/pull/5678)) by [@millotp](https://github.com/millotp/)
|
|
11
|
+
- [d6bde0f0c](https://github.com/algolia/api-clients-automation/commit/d6bde0f0c) chore(scripts): remove component from jira ticket ([#5680](https://github.com/algolia/api-clients-automation/pull/5680)) by [@millotp](https://github.com/millotp/)
|
|
12
|
+
- [fe6e82c11](https://github.com/algolia/api-clients-automation/commit/fe6e82c11) feat(specs): add sortBy query param and sortingStrategy ([#5686](https://github.com/algolia/api-clients-automation/pull/5686)) by [@ben-kalmus](https://github.com/ben-kalmus/)
|
|
13
|
+
- [cccfa9c86](https://github.com/algolia/api-clients-automation/commit/cccfa9c86) feat(specs): add `sortBy` trigger on Composition Rules ([#5707](https://github.com/algolia/api-clients-automation/pull/5707)) by [@ClaraMuller](https://github.com/ClaraMuller/)
|
|
14
|
+
- [260d8102c](https://github.com/algolia/api-clients-automation/commit/260d8102c) docs(abtests): Added documentation for featureFilters configuration i… ([#5688](https://github.com/algolia/api-clients-automation/pull/5688)) by [@samykettani](https://github.com/samykettani/)
|
|
15
|
+
|
|
1
16
|
## [3.33.0](https://github.com/algolia/algoliasearch-client-ruby/compare/3.32.0...3.33.0)
|
|
2
17
|
|
|
3
18
|
- [6a48ef151a](https://github.com/algolia/api-clients-automation/commit/6a48ef151a) feat(specs): allow `enablePersonalization` query parameter at run time for Composition API ([#5651](https://github.com/algolia/api-clients-automation/pull/5651)) by [@ClaraMuller](https://github.com/ClaraMuller/)
|
data/Gemfile.lock
CHANGED
|
@@ -947,5 +947,61 @@ module Algolia
|
|
|
947
947
|
)
|
|
948
948
|
end
|
|
949
949
|
|
|
950
|
+
# Updates the \"sortingStrategy\" field of an existing composition. This endpoint allows you to create a new sorting strategy mapping or replace the currently configured one. The provided sorting indices MUST be associated indices or replicas of the main targeted index. WARNING: This endpoint cannot validate if the sort index is related to the composition's main index. Validation will fail at runtime if the index you updated is not related! The update is applied to the specified composition within the current Algolia application and returns a taskID that can be used to track the operation’s completion.
|
|
951
|
+
#
|
|
952
|
+
# Required API Key ACLs:
|
|
953
|
+
# - editSettings
|
|
954
|
+
# @param composition_id [String] Unique Composition ObjectID. (required)
|
|
955
|
+
# @param request_body [Hash<String, String>] (required)
|
|
956
|
+
# @param request_options: The request options to send along with the query, they will be merged with the transporter base parameters (headers, query params, timeouts, etc.). (optional)
|
|
957
|
+
# @return [Http::Response] the response
|
|
958
|
+
def update_sorting_strategy_composition_with_http_info(composition_id, request_body, request_options = {})
|
|
959
|
+
# verify the required parameter 'composition_id' is set
|
|
960
|
+
if @api_client.config.client_side_validation && composition_id.nil?
|
|
961
|
+
raise(
|
|
962
|
+
ArgumentError,
|
|
963
|
+
"Parameter `composition_id` is required when calling `update_sorting_strategy_composition`."
|
|
964
|
+
)
|
|
965
|
+
end
|
|
966
|
+
# verify the required parameter 'request_body' is set
|
|
967
|
+
if @api_client.config.client_side_validation && request_body.nil?
|
|
968
|
+
raise ArgumentError, "Parameter `request_body` is required when calling `update_sorting_strategy_composition`."
|
|
969
|
+
end
|
|
970
|
+
|
|
971
|
+
path = "/1/compositions/{compositionID}/sortingStrategy".sub(
|
|
972
|
+
"{" + "compositionID" + "}",
|
|
973
|
+
Transport.encode_uri(composition_id.to_s)
|
|
974
|
+
)
|
|
975
|
+
query_params = {}
|
|
976
|
+
query_params = query_params.merge(request_options[:query_params]) unless request_options[:query_params].nil?
|
|
977
|
+
header_params = {}
|
|
978
|
+
header_params = header_params.merge(request_options[:header_params]) unless request_options[:header_params].nil?
|
|
979
|
+
|
|
980
|
+
post_body = request_options[:debug_body] || @api_client.object_to_http_body(request_body)
|
|
981
|
+
|
|
982
|
+
new_options = request_options.merge(
|
|
983
|
+
:operation => :"CompositionClient.update_sorting_strategy_composition",
|
|
984
|
+
:header_params => header_params,
|
|
985
|
+
:query_params => query_params,
|
|
986
|
+
:body => post_body,
|
|
987
|
+
:use_read_transporter => false
|
|
988
|
+
)
|
|
989
|
+
|
|
990
|
+
@api_client.call_api(:POST, path, new_options)
|
|
991
|
+
end
|
|
992
|
+
|
|
993
|
+
# Updates the \"sortingStrategy\" field of an existing composition. This endpoint allows you to create a new sorting strategy mapping or replace the currently configured one. The provided sorting indices MUST be associated indices or replicas of the main targeted index. WARNING: This endpoint cannot validate if the sort index is related to the composition's main index. Validation will fail at runtime if the index you updated is not related! The update is applied to the specified composition within the current Algolia application and returns a taskID that can be used to track the operation’s completion.
|
|
994
|
+
#
|
|
995
|
+
# Required API Key ACLs:
|
|
996
|
+
# - editSettings
|
|
997
|
+
# @param composition_id [String] Unique Composition ObjectID. (required)
|
|
998
|
+
# @param request_body [Hash<String, String>] (required)
|
|
999
|
+
# @param request_options: The request options to send along with the query, they will be merged with the transporter base parameters (headers, query params, timeouts, etc.). (optional)
|
|
1000
|
+
# @return [TaskIDResponse]
|
|
1001
|
+
def update_sorting_strategy_composition(composition_id, request_body, request_options = {})
|
|
1002
|
+
response = update_sorting_strategy_composition_with_http_info(composition_id, request_body, request_options)
|
|
1003
|
+
@api_client.deserialize(response.body, request_options[:debug_return_type] || "Composition::TaskIDResponse")
|
|
1004
|
+
end
|
|
1005
|
+
|
|
950
1006
|
end
|
|
951
1007
|
end
|
|
@@ -9,6 +9,8 @@ module Algolia
|
|
|
9
9
|
module Abtesting
|
|
10
10
|
# A/B test configuration.
|
|
11
11
|
class ABTestConfiguration
|
|
12
|
+
attr_accessor :feature_filters
|
|
13
|
+
|
|
12
14
|
attr_accessor :outliers
|
|
13
15
|
|
|
14
16
|
attr_accessor :empty_search
|
|
@@ -18,6 +20,7 @@ module Algolia
|
|
|
18
20
|
# Attribute mapping from ruby-style variable name to JSON key.
|
|
19
21
|
def self.attribute_map
|
|
20
22
|
{
|
|
23
|
+
:feature_filters => :featureFilters,
|
|
21
24
|
:outliers => :outliers,
|
|
22
25
|
:empty_search => :emptySearch,
|
|
23
26
|
:minimum_detectable_effect => :minimumDetectableEffect
|
|
@@ -27,6 +30,7 @@ module Algolia
|
|
|
27
30
|
# Attribute type mapping.
|
|
28
31
|
def self.types_mapping
|
|
29
32
|
{
|
|
33
|
+
:feature_filters => :"FeatureFilters",
|
|
30
34
|
:outliers => :"Outliers",
|
|
31
35
|
:empty_search => :"EmptySearch",
|
|
32
36
|
:minimum_detectable_effect => :"MinimumDetectableEffect"
|
|
@@ -63,6 +67,10 @@ module Algolia
|
|
|
63
67
|
h[k.to_sym] = v
|
|
64
68
|
}
|
|
65
69
|
|
|
70
|
+
if attributes.key?(:feature_filters)
|
|
71
|
+
self.feature_filters = attributes[:feature_filters]
|
|
72
|
+
end
|
|
73
|
+
|
|
66
74
|
if attributes.key?(:outliers)
|
|
67
75
|
self.outliers = attributes[:outliers]
|
|
68
76
|
end
|
|
@@ -81,6 +89,7 @@ module Algolia
|
|
|
81
89
|
def ==(other)
|
|
82
90
|
return true if self.equal?(other)
|
|
83
91
|
self.class == other.class &&
|
|
92
|
+
feature_filters == other.feature_filters &&
|
|
84
93
|
outliers == other.outliers &&
|
|
85
94
|
empty_search == other.empty_search &&
|
|
86
95
|
minimum_detectable_effect == other.minimum_detectable_effect
|
|
@@ -95,7 +104,7 @@ module Algolia
|
|
|
95
104
|
# Calculates hash code according to all attributes.
|
|
96
105
|
# @return [Integer] Hash code
|
|
97
106
|
def hash
|
|
98
|
-
[outliers, empty_search, minimum_detectable_effect].hash
|
|
107
|
+
[feature_filters, outliers, empty_search, minimum_detectable_effect].hash
|
|
99
108
|
end
|
|
100
109
|
|
|
101
110
|
# Builds the object from hash
|
|
@@ -9,6 +9,8 @@ module Algolia
|
|
|
9
9
|
module Abtesting
|
|
10
10
|
# A/B test configuration for estimating the sample size and duration using minimum detectable effect.
|
|
11
11
|
class EstimateConfiguration
|
|
12
|
+
attr_accessor :feature_filters
|
|
13
|
+
|
|
12
14
|
attr_accessor :outliers
|
|
13
15
|
|
|
14
16
|
attr_accessor :empty_search
|
|
@@ -18,6 +20,7 @@ module Algolia
|
|
|
18
20
|
# Attribute mapping from ruby-style variable name to JSON key.
|
|
19
21
|
def self.attribute_map
|
|
20
22
|
{
|
|
23
|
+
:feature_filters => :featureFilters,
|
|
21
24
|
:outliers => :outliers,
|
|
22
25
|
:empty_search => :emptySearch,
|
|
23
26
|
:minimum_detectable_effect => :minimumDetectableEffect
|
|
@@ -27,6 +30,7 @@ module Algolia
|
|
|
27
30
|
# Attribute type mapping.
|
|
28
31
|
def self.types_mapping
|
|
29
32
|
{
|
|
33
|
+
:feature_filters => :"FeatureFilters",
|
|
30
34
|
:outliers => :"Outliers",
|
|
31
35
|
:empty_search => :"EmptySearch",
|
|
32
36
|
:minimum_detectable_effect => :"MinimumDetectableEffect"
|
|
@@ -63,6 +67,10 @@ module Algolia
|
|
|
63
67
|
h[k.to_sym] = v
|
|
64
68
|
}
|
|
65
69
|
|
|
70
|
+
if attributes.key?(:feature_filters)
|
|
71
|
+
self.feature_filters = attributes[:feature_filters]
|
|
72
|
+
end
|
|
73
|
+
|
|
66
74
|
if attributes.key?(:outliers)
|
|
67
75
|
self.outliers = attributes[:outliers]
|
|
68
76
|
end
|
|
@@ -83,6 +91,7 @@ module Algolia
|
|
|
83
91
|
def ==(other)
|
|
84
92
|
return true if self.equal?(other)
|
|
85
93
|
self.class == other.class &&
|
|
94
|
+
feature_filters == other.feature_filters &&
|
|
86
95
|
outliers == other.outliers &&
|
|
87
96
|
empty_search == other.empty_search &&
|
|
88
97
|
minimum_detectable_effect == other.minimum_detectable_effect
|
|
@@ -97,7 +106,7 @@ module Algolia
|
|
|
97
106
|
# Calculates hash code according to all attributes.
|
|
98
107
|
# @return [Integer] Hash code
|
|
99
108
|
def hash
|
|
100
|
-
[outliers, empty_search, minimum_detectable_effect].hash
|
|
109
|
+
[feature_filters, outliers, empty_search, minimum_detectable_effect].hash
|
|
101
110
|
end
|
|
102
111
|
|
|
103
112
|
# Builds the object from hash
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
# Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.
|
|
4
|
+
|
|
5
|
+
require "date"
|
|
6
|
+
require "time"
|
|
7
|
+
|
|
8
|
+
module Algolia
|
|
9
|
+
module Abtesting
|
|
10
|
+
# Configuration of feature-based filters applied to the A/B test population.
|
|
11
|
+
class FeatureFilters
|
|
12
|
+
# Whether to apply Dynamic Re-Ranking feature filters.
|
|
13
|
+
attr_accessor :dynamic_re_ranking
|
|
14
|
+
|
|
15
|
+
# Whether to apply AI Personalization feature filters.
|
|
16
|
+
attr_accessor :ai_perso
|
|
17
|
+
|
|
18
|
+
# Whether to apply Multi-Signal Re-Ranking feature filters.
|
|
19
|
+
attr_accessor :multi_signal_ranking
|
|
20
|
+
|
|
21
|
+
# Attribute mapping from ruby-style variable name to JSON key.
|
|
22
|
+
def self.attribute_map
|
|
23
|
+
{
|
|
24
|
+
:dynamic_re_ranking => :dynamicReRanking,
|
|
25
|
+
:ai_perso => :aiPerso,
|
|
26
|
+
:multi_signal_ranking => :multiSignalRanking
|
|
27
|
+
}
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# Attribute type mapping.
|
|
31
|
+
def self.types_mapping
|
|
32
|
+
{
|
|
33
|
+
:dynamic_re_ranking => :"Boolean",
|
|
34
|
+
:ai_perso => :"Boolean",
|
|
35
|
+
:multi_signal_ranking => :"Boolean"
|
|
36
|
+
}
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# List of attributes with nullable: true
|
|
40
|
+
def self.openapi_nullable
|
|
41
|
+
Set.new(
|
|
42
|
+
[]
|
|
43
|
+
)
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
# Initializes the object
|
|
47
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
|
48
|
+
def initialize(attributes = {})
|
|
49
|
+
if (!attributes.is_a?(Hash))
|
|
50
|
+
raise(
|
|
51
|
+
ArgumentError,
|
|
52
|
+
"The input argument (attributes) must be a hash in `Algolia::FeatureFilters` initialize method"
|
|
53
|
+
)
|
|
54
|
+
end
|
|
55
|
+
|
|
56
|
+
# check to see if the attribute exists and convert string to symbol for hash key
|
|
57
|
+
attributes = attributes.each_with_object({}) { |(k, v), h|
|
|
58
|
+
if (!self.class.attribute_map.key?(k.to_sym))
|
|
59
|
+
raise(
|
|
60
|
+
ArgumentError,
|
|
61
|
+
"`#{k}` is not a valid attribute in `Algolia::FeatureFilters`. Please check the name to make sure it's valid. List of attributes: " +
|
|
62
|
+
self.class.attribute_map.keys.inspect
|
|
63
|
+
)
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
h[k.to_sym] = v
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
if attributes.key?(:dynamic_re_ranking)
|
|
70
|
+
self.dynamic_re_ranking = attributes[:dynamic_re_ranking]
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
if attributes.key?(:ai_perso)
|
|
74
|
+
self.ai_perso = attributes[:ai_perso]
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
if attributes.key?(:multi_signal_ranking)
|
|
78
|
+
self.multi_signal_ranking = attributes[:multi_signal_ranking]
|
|
79
|
+
end
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
# Checks equality by comparing each attribute.
|
|
83
|
+
# @param [Object] Object to be compared
|
|
84
|
+
def ==(other)
|
|
85
|
+
return true if self.equal?(other)
|
|
86
|
+
self.class == other.class &&
|
|
87
|
+
dynamic_re_ranking == other.dynamic_re_ranking &&
|
|
88
|
+
ai_perso == other.ai_perso &&
|
|
89
|
+
multi_signal_ranking == other.multi_signal_ranking
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
# @see the `==` method
|
|
93
|
+
# @param [Object] Object to be compared
|
|
94
|
+
def eql?(other)
|
|
95
|
+
self == other
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
# Calculates hash code according to all attributes.
|
|
99
|
+
# @return [Integer] Hash code
|
|
100
|
+
def hash
|
|
101
|
+
[dynamic_re_ranking, ai_perso, multi_signal_ranking].hash
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
# Builds the object from hash
|
|
105
|
+
# @param [Hash] attributes Model attributes in the form of hash
|
|
106
|
+
# @return [Object] Returns the model itself
|
|
107
|
+
def self.build_from_hash(attributes)
|
|
108
|
+
return nil unless attributes.is_a?(Hash)
|
|
109
|
+
attributes = attributes.transform_keys(&:to_sym)
|
|
110
|
+
transformed_hash = {}
|
|
111
|
+
types_mapping.each_pair do |key, type|
|
|
112
|
+
if attributes.key?(attribute_map[key]) && attributes[attribute_map[key]].nil?
|
|
113
|
+
transformed_hash[key.to_sym] = nil
|
|
114
|
+
elsif type =~ /\AArray<(.*)>/i
|
|
115
|
+
# check to ensure the input is an array given that the attribute
|
|
116
|
+
# is documented as an array but the input is not
|
|
117
|
+
if attributes[attribute_map[key]].is_a?(Array)
|
|
118
|
+
transformed_hash[key.to_sym] = attributes[attribute_map[key]].map { |v|
|
|
119
|
+
_deserialize(::Regexp.last_match(1), v)
|
|
120
|
+
}
|
|
121
|
+
end
|
|
122
|
+
elsif !attributes[attribute_map[key]].nil?
|
|
123
|
+
transformed_hash[key.to_sym] = _deserialize(type, attributes[attribute_map[key]])
|
|
124
|
+
end
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
new(transformed_hash)
|
|
128
|
+
end
|
|
129
|
+
|
|
130
|
+
# Deserializes the data based on type
|
|
131
|
+
# @param string type Data type
|
|
132
|
+
# @param string value Value to be deserialized
|
|
133
|
+
# @return [Object] Deserialized data
|
|
134
|
+
def self._deserialize(type, value)
|
|
135
|
+
case type.to_sym
|
|
136
|
+
when :Time
|
|
137
|
+
Time.parse(value)
|
|
138
|
+
when :Date
|
|
139
|
+
Date.parse(value)
|
|
140
|
+
when :String
|
|
141
|
+
value.to_s
|
|
142
|
+
when :Integer
|
|
143
|
+
value.to_i
|
|
144
|
+
when :Float
|
|
145
|
+
value.to_f
|
|
146
|
+
when :Boolean
|
|
147
|
+
if value.to_s =~ /\A(true|t|yes|y|1)\z/i
|
|
148
|
+
true
|
|
149
|
+
else
|
|
150
|
+
false
|
|
151
|
+
end
|
|
152
|
+
|
|
153
|
+
when :Object
|
|
154
|
+
# generic object (usually a Hash), return directly
|
|
155
|
+
value
|
|
156
|
+
when /\AArray<(?<inner_type>.+)>\z/
|
|
157
|
+
inner_type = Regexp.last_match[:inner_type]
|
|
158
|
+
value.map { |v| _deserialize(inner_type, v) }
|
|
159
|
+
when /\AHash<(?<k_type>.+?), (?<v_type>.+)>\z/
|
|
160
|
+
k_type = Regexp.last_match[:k_type]
|
|
161
|
+
v_type = Regexp.last_match[:v_type]
|
|
162
|
+
{}.tap do |hash|
|
|
163
|
+
value.each do |k, v|
|
|
164
|
+
hash[_deserialize(k_type, k)] = _deserialize(v_type, v)
|
|
165
|
+
end
|
|
166
|
+
end
|
|
167
|
+
# model
|
|
168
|
+
else
|
|
169
|
+
# models (e.g. Pet) or oneOf
|
|
170
|
+
klass = Algolia::Abtesting.const_get(type)
|
|
171
|
+
klass.respond_to?(:openapi_any_of) || klass.respond_to?(:openapi_one_of) ? klass.build(value) : klass
|
|
172
|
+
.build_from_hash(value)
|
|
173
|
+
end
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
# Returns the string representation of the object
|
|
177
|
+
# @return [String] String presentation of the object
|
|
178
|
+
def to_s
|
|
179
|
+
to_hash.to_s
|
|
180
|
+
end
|
|
181
|
+
|
|
182
|
+
# to_body is an alias to to_hash (backward compatibility)
|
|
183
|
+
# @return [Hash] Returns the object in the form of hash
|
|
184
|
+
def to_body
|
|
185
|
+
to_hash
|
|
186
|
+
end
|
|
187
|
+
|
|
188
|
+
def to_json(*_args)
|
|
189
|
+
to_hash.to_json
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
# Returns the object in the form of hash
|
|
193
|
+
# @return [Hash] Returns the object in the form of hash
|
|
194
|
+
def to_hash
|
|
195
|
+
hash = {}
|
|
196
|
+
self.class.attribute_map.each_pair do |attr, param|
|
|
197
|
+
value = send(attr)
|
|
198
|
+
if value.nil?
|
|
199
|
+
is_nullable = self.class.openapi_nullable.include?(attr)
|
|
200
|
+
next if !is_nullable || (is_nullable && !instance_variable_defined?(:"@#{attr}"))
|
|
201
|
+
end
|
|
202
|
+
|
|
203
|
+
hash[param] = _to_hash(value)
|
|
204
|
+
end
|
|
205
|
+
|
|
206
|
+
hash
|
|
207
|
+
end
|
|
208
|
+
|
|
209
|
+
# Outputs non-array value in the form of hash
|
|
210
|
+
# For object, use to_hash. Otherwise, just return the value
|
|
211
|
+
# @param [Object] value Any valid value
|
|
212
|
+
# @return [Hash] Returns the value in the form of hash
|
|
213
|
+
def _to_hash(value)
|
|
214
|
+
if value.is_a?(Array)
|
|
215
|
+
value.compact.map { |v| _to_hash(v) }
|
|
216
|
+
elsif value.is_a?(Hash)
|
|
217
|
+
{}.tap do |hash|
|
|
218
|
+
value.each { |k, v| hash[k] = _to_hash(v) }
|
|
219
|
+
end
|
|
220
|
+
elsif value.respond_to?(:to_hash)
|
|
221
|
+
value.to_hash
|
|
222
|
+
else
|
|
223
|
+
value
|
|
224
|
+
end
|
|
225
|
+
end
|
|
226
|
+
end
|
|
227
|
+
end
|
|
228
|
+
end
|
|
@@ -19,13 +19,17 @@ module Algolia
|
|
|
19
19
|
|
|
20
20
|
attr_accessor :behavior
|
|
21
21
|
|
|
22
|
+
# A mapping of sorting labels to the indices (or replicas) that implement those sorting rules. The sorting indices MUST be related to the associated main targeted index in the composition. Each key is the label your frontend sends at runtime (for example, \"Price (asc)\"), and each value is the name of the index that should be queried when that label is selected. When a request includes a \"sortBy\" parameter, the platform looks up the corresponding index in this mapping and uses it to execute the query. The main targeted index is replaced with the sorting strategy index it is mapped to. Up to 20 sorting strategies can be defined.
|
|
23
|
+
attr_accessor :sorting_strategy
|
|
24
|
+
|
|
22
25
|
# Attribute mapping from ruby-style variable name to JSON key.
|
|
23
26
|
def self.attribute_map
|
|
24
27
|
{
|
|
25
28
|
:algolia_object_id => :objectID,
|
|
26
29
|
:name => :name,
|
|
27
30
|
:description => :description,
|
|
28
|
-
:behavior => :behavior
|
|
31
|
+
:behavior => :behavior,
|
|
32
|
+
:sorting_strategy => :sortingStrategy
|
|
29
33
|
}
|
|
30
34
|
end
|
|
31
35
|
|
|
@@ -35,7 +39,8 @@ module Algolia
|
|
|
35
39
|
:algolia_object_id => :"String",
|
|
36
40
|
:name => :"String",
|
|
37
41
|
:description => :"String",
|
|
38
|
-
:behavior => :"CompositionBehavior"
|
|
42
|
+
:behavior => :"CompositionBehavior",
|
|
43
|
+
:sorting_strategy => :"Hash<String, String>"
|
|
39
44
|
}
|
|
40
45
|
end
|
|
41
46
|
|
|
@@ -90,6 +95,12 @@ module Algolia
|
|
|
90
95
|
else
|
|
91
96
|
self.behavior = nil
|
|
92
97
|
end
|
|
98
|
+
|
|
99
|
+
if attributes.key?(:sorting_strategy)
|
|
100
|
+
if (value = attributes[:sorting_strategy]).is_a?(Hash)
|
|
101
|
+
self.sorting_strategy = value
|
|
102
|
+
end
|
|
103
|
+
end
|
|
93
104
|
end
|
|
94
105
|
|
|
95
106
|
# Checks equality by comparing each attribute.
|
|
@@ -100,7 +111,8 @@ module Algolia
|
|
|
100
111
|
algolia_object_id == other.algolia_object_id &&
|
|
101
112
|
name == other.name &&
|
|
102
113
|
description == other.description &&
|
|
103
|
-
behavior == other.behavior
|
|
114
|
+
behavior == other.behavior &&
|
|
115
|
+
sorting_strategy == other.sorting_strategy
|
|
104
116
|
end
|
|
105
117
|
|
|
106
118
|
# @see the `==` method
|
|
@@ -112,7 +124,7 @@ module Algolia
|
|
|
112
124
|
# Calculates hash code according to all attributes.
|
|
113
125
|
# @return [Integer] Hash code
|
|
114
126
|
def hash
|
|
115
|
-
[algolia_object_id, name, description, behavior].hash
|
|
127
|
+
[algolia_object_id, name, description, behavior, sorting_strategy].hash
|
|
116
128
|
end
|
|
117
129
|
|
|
118
130
|
# Builds the object from hash
|
|
@@ -8,7 +8,7 @@ require "time"
|
|
|
8
8
|
module Algolia
|
|
9
9
|
module Composition
|
|
10
10
|
class CompositionRunAppliedRules
|
|
11
|
-
#
|
|
11
|
+
# The objectID of the applied composition rule on this query.
|
|
12
12
|
attr_accessor :algolia_object_id
|
|
13
13
|
|
|
14
14
|
# Attribute mapping from ruby-style variable name to JSON key.
|
|
@@ -19,13 +19,17 @@ module Algolia
|
|
|
19
19
|
# Filters that trigger the rule. You can add add filters using the syntax `facet:value` so that the rule is triggered, when the specific filter is selected. You can use `filters` on its own or combine it with the `pattern` parameter.
|
|
20
20
|
attr_accessor :filters
|
|
21
21
|
|
|
22
|
+
# Sort criteria that trigger the rule. You can trigger composition rules based on the selected sorting strategy set by the parameter `sortBy`. The rule will trigger if the value passed to `sortBy` matches the one defined in the condition.
|
|
23
|
+
attr_accessor :sort_by
|
|
24
|
+
|
|
22
25
|
# Attribute mapping from ruby-style variable name to JSON key.
|
|
23
26
|
def self.attribute_map
|
|
24
27
|
{
|
|
25
28
|
:pattern => :pattern,
|
|
26
29
|
:anchoring => :anchoring,
|
|
27
30
|
:context => :context,
|
|
28
|
-
:filters => :filters
|
|
31
|
+
:filters => :filters,
|
|
32
|
+
:sort_by => :sortBy
|
|
29
33
|
}
|
|
30
34
|
end
|
|
31
35
|
|
|
@@ -35,7 +39,8 @@ module Algolia
|
|
|
35
39
|
:pattern => :"String",
|
|
36
40
|
:anchoring => :"Anchoring",
|
|
37
41
|
:context => :"String",
|
|
38
|
-
:filters => :"String"
|
|
42
|
+
:filters => :"String",
|
|
43
|
+
:sort_by => :"String"
|
|
39
44
|
}
|
|
40
45
|
end
|
|
41
46
|
|
|
@@ -84,6 +89,10 @@ module Algolia
|
|
|
84
89
|
if attributes.key?(:filters)
|
|
85
90
|
self.filters = attributes[:filters]
|
|
86
91
|
end
|
|
92
|
+
|
|
93
|
+
if attributes.key?(:sort_by)
|
|
94
|
+
self.sort_by = attributes[:sort_by]
|
|
95
|
+
end
|
|
87
96
|
end
|
|
88
97
|
|
|
89
98
|
# Checks equality by comparing each attribute.
|
|
@@ -94,7 +103,8 @@ module Algolia
|
|
|
94
103
|
pattern == other.pattern &&
|
|
95
104
|
anchoring == other.anchoring &&
|
|
96
105
|
context == other.context &&
|
|
97
|
-
filters == other.filters
|
|
106
|
+
filters == other.filters &&
|
|
107
|
+
sort_by == other.sort_by
|
|
98
108
|
end
|
|
99
109
|
|
|
100
110
|
# @see the `==` method
|
|
@@ -106,7 +116,7 @@ module Algolia
|
|
|
106
116
|
# Calculates hash code according to all attributes.
|
|
107
117
|
# @return [Integer] Hash code
|
|
108
118
|
def hash
|
|
109
|
-
[pattern, anchoring, context, filters].hash
|
|
119
|
+
[pattern, anchoring, context, filters, sort_by].hash
|
|
110
120
|
end
|
|
111
121
|
|
|
112
122
|
# Builds the object from hash
|
|
@@ -77,15 +77,18 @@ module Algolia
|
|
|
77
77
|
# Search query.
|
|
78
78
|
attr_accessor :query
|
|
79
79
|
|
|
80
|
-
# Relevancy threshold below which less relevant results aren't included in the results You can only set `relevancyStrictness` on [virtual replica indices](https://www.algolia.com/doc/guides/managing-results/refine-results/sorting/in-depth/replicas/#what-are-virtual-replicas). Use this setting to strike a balance between the relevance and number of returned results.
|
|
81
|
-
attr_accessor :relevancy_strictness
|
|
82
|
-
|
|
83
80
|
# Languages for language-specific query processing steps such as plurals, stop-word removal, and word-detection dictionaries This setting sets a default list of languages used by the `removeStopWords` and `ignorePlurals` settings. This setting also sets a dictionary for word detection in the logogram-based [CJK](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/normalization/#normalization-for-logogram-based-languages-cjk) languages. To support this, you must place the CJK language **first** **You should always specify a query language.** If you don't specify an indexing language, the search engine uses all [supported languages](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/supported-languages), or the languages you specified with the `ignorePlurals` or `removeStopWords` parameters. This can lead to unexpected search results. For more information, see [Language-specific configuration](https://www.algolia.com/doc/guides/managing-results/optimize-search-results/handling-natural-languages-nlp/in-depth/language-specific-configurations).
|
|
84
81
|
attr_accessor :query_languages
|
|
85
82
|
|
|
83
|
+
# Relevancy threshold below which less relevant results aren't included in the results You can only set `relevancyStrictness` on [virtual replica indices](https://www.algolia.com/doc/guides/managing-results/refine-results/sorting/in-depth/replicas/#what-are-virtual-replicas). Use this setting to strike a balance between the relevance and number of returned results.
|
|
84
|
+
attr_accessor :relevancy_strictness
|
|
85
|
+
|
|
86
86
|
# Assigns a rule context to the run 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.
|
|
87
87
|
attr_accessor :rule_contexts
|
|
88
88
|
|
|
89
|
+
# Indicates which sorting strategy to apply for the request. The value must match one of the labels defined in the \"sortingStrategy\" mapping. For example, \"Price (asc)\", see Upsert Composition. At runtime, this label is used to look up the corresponding index or replica configured in \"sortingStrategy\", and the query is executed using that index instead of main's. In addition to \"sortingStrategy\", this parameter is also used to apply a matching Composition Rule that contains a condition defined to trigger on \"sortBy\", see Composition Rules. If no value is provided or an invalid value, no sorting strategy is applied.
|
|
90
|
+
attr_accessor :sort_by
|
|
91
|
+
|
|
89
92
|
# 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).
|
|
90
93
|
attr_accessor :user_token
|
|
91
94
|
|
|
@@ -117,9 +120,10 @@ module Algolia
|
|
|
117
120
|
:optional_filters => :optionalFilters,
|
|
118
121
|
:page => :page,
|
|
119
122
|
:query => :query,
|
|
120
|
-
:relevancy_strictness => :relevancyStrictness,
|
|
121
123
|
:query_languages => :queryLanguages,
|
|
124
|
+
:relevancy_strictness => :relevancyStrictness,
|
|
122
125
|
:rule_contexts => :ruleContexts,
|
|
126
|
+
:sort_by => :sortBy,
|
|
123
127
|
:user_token => :userToken
|
|
124
128
|
}
|
|
125
129
|
end
|
|
@@ -152,9 +156,10 @@ module Algolia
|
|
|
152
156
|
:optional_filters => :"OptionalFilters",
|
|
153
157
|
:page => :"Integer",
|
|
154
158
|
:query => :"String",
|
|
155
|
-
:relevancy_strictness => :"Integer",
|
|
156
159
|
:query_languages => :"Array<SupportedLanguage>",
|
|
160
|
+
:relevancy_strictness => :"Integer",
|
|
157
161
|
:rule_contexts => :"Array<String>",
|
|
162
|
+
:sort_by => :"String",
|
|
158
163
|
:user_token => :"String"
|
|
159
164
|
}
|
|
160
165
|
end
|
|
@@ -298,22 +303,26 @@ module Algolia
|
|
|
298
303
|
self.query = attributes[:query]
|
|
299
304
|
end
|
|
300
305
|
|
|
301
|
-
if attributes.key?(:relevancy_strictness)
|
|
302
|
-
self.relevancy_strictness = attributes[:relevancy_strictness]
|
|
303
|
-
end
|
|
304
|
-
|
|
305
306
|
if attributes.key?(:query_languages)
|
|
306
307
|
if (value = attributes[:query_languages]).is_a?(Array)
|
|
307
308
|
self.query_languages = value
|
|
308
309
|
end
|
|
309
310
|
end
|
|
310
311
|
|
|
312
|
+
if attributes.key?(:relevancy_strictness)
|
|
313
|
+
self.relevancy_strictness = attributes[:relevancy_strictness]
|
|
314
|
+
end
|
|
315
|
+
|
|
311
316
|
if attributes.key?(:rule_contexts)
|
|
312
317
|
if (value = attributes[:rule_contexts]).is_a?(Array)
|
|
313
318
|
self.rule_contexts = value
|
|
314
319
|
end
|
|
315
320
|
end
|
|
316
321
|
|
|
322
|
+
if attributes.key?(:sort_by)
|
|
323
|
+
self.sort_by = attributes[:sort_by]
|
|
324
|
+
end
|
|
325
|
+
|
|
317
326
|
if attributes.key?(:user_token)
|
|
318
327
|
self.user_token = attributes[:user_token]
|
|
319
328
|
end
|
|
@@ -349,9 +358,10 @@ module Algolia
|
|
|
349
358
|
optional_filters == other.optional_filters &&
|
|
350
359
|
page == other.page &&
|
|
351
360
|
query == other.query &&
|
|
352
|
-
relevancy_strictness == other.relevancy_strictness &&
|
|
353
361
|
query_languages == other.query_languages &&
|
|
362
|
+
relevancy_strictness == other.relevancy_strictness &&
|
|
354
363
|
rule_contexts == other.rule_contexts &&
|
|
364
|
+
sort_by == other.sort_by &&
|
|
355
365
|
user_token == other.user_token
|
|
356
366
|
end
|
|
357
367
|
|
|
@@ -390,9 +400,10 @@ module Algolia
|
|
|
390
400
|
optional_filters,
|
|
391
401
|
page,
|
|
392
402
|
query,
|
|
393
|
-
relevancy_strictness,
|
|
394
403
|
query_languages,
|
|
404
|
+
relevancy_strictness,
|
|
395
405
|
rule_contexts,
|
|
406
|
+
sort_by,
|
|
396
407
|
user_token
|
|
397
408
|
].hash
|
|
398
409
|
end
|
|
@@ -8,7 +8,7 @@ require "time"
|
|
|
8
8
|
module Algolia
|
|
9
9
|
module Composition
|
|
10
10
|
class ResultsInjectedItemAppliedRulesInfoResponse
|
|
11
|
-
#
|
|
11
|
+
# The objectID of the applied index level rule on this injected group.
|
|
12
12
|
attr_accessor :algolia_object_id
|
|
13
13
|
|
|
14
14
|
# Attribute mapping from ruby-style variable name to JSON key.
|
|
@@ -83,8 +83,11 @@ module Algolia
|
|
|
83
83
|
# Whether automatic events collection is enabled for the application.
|
|
84
84
|
attr_accessor :_automatic_insights
|
|
85
85
|
|
|
86
|
-
#
|
|
87
|
-
attr_accessor :
|
|
86
|
+
# Search results (hits). Hits are records from your index that match the search criteria, augmented with additional attributes, such as, for highlighting.
|
|
87
|
+
attr_accessor :hits
|
|
88
|
+
|
|
89
|
+
# Number of hits returned per page.
|
|
90
|
+
attr_accessor :hits_per_page
|
|
88
91
|
|
|
89
92
|
# Number of results (hits).
|
|
90
93
|
attr_accessor :nb_hits
|
|
@@ -92,18 +95,15 @@ module Algolia
|
|
|
92
95
|
# Number of pages of results.
|
|
93
96
|
attr_accessor :nb_pages
|
|
94
97
|
|
|
95
|
-
#
|
|
96
|
-
attr_accessor :
|
|
97
|
-
|
|
98
|
-
# Search results (hits). Hits are records from your index that match the search criteria, augmented with additional attributes, such as, for highlighting.
|
|
99
|
-
attr_accessor :hits
|
|
100
|
-
|
|
101
|
-
# Search query.
|
|
102
|
-
attr_accessor :query
|
|
98
|
+
# The current page of the results.
|
|
99
|
+
attr_accessor :page
|
|
103
100
|
|
|
104
101
|
# URL-encoded string of all search parameters.
|
|
105
102
|
attr_accessor :params
|
|
106
103
|
|
|
104
|
+
# The search query string.
|
|
105
|
+
attr_accessor :query
|
|
106
|
+
|
|
107
107
|
attr_accessor :compositions
|
|
108
108
|
|
|
109
109
|
# Attribute mapping from ruby-style variable name to JSON key.
|
|
@@ -135,13 +135,13 @@ module Algolia
|
|
|
135
135
|
:user_data => :userData,
|
|
136
136
|
:query_id => :queryID,
|
|
137
137
|
:_automatic_insights => :_automaticInsights,
|
|
138
|
-
:
|
|
138
|
+
:hits => :hits,
|
|
139
|
+
:hits_per_page => :hitsPerPage,
|
|
139
140
|
:nb_hits => :nbHits,
|
|
140
141
|
:nb_pages => :nbPages,
|
|
141
|
-
:
|
|
142
|
-
:hits => :hits,
|
|
143
|
-
:query => :query,
|
|
142
|
+
:page => :page,
|
|
144
143
|
:params => :params,
|
|
144
|
+
:query => :query,
|
|
145
145
|
:compositions => :compositions
|
|
146
146
|
}
|
|
147
147
|
end
|
|
@@ -175,13 +175,13 @@ module Algolia
|
|
|
175
175
|
:user_data => :"Object",
|
|
176
176
|
:query_id => :"String",
|
|
177
177
|
:_automatic_insights => :"Boolean",
|
|
178
|
-
:
|
|
178
|
+
:hits => :"Array<Hit>",
|
|
179
|
+
:hits_per_page => :"Integer",
|
|
179
180
|
:nb_hits => :"Integer",
|
|
180
181
|
:nb_pages => :"Integer",
|
|
181
|
-
:
|
|
182
|
-
:hits => :"Array<Hit>",
|
|
183
|
-
:query => :"String",
|
|
182
|
+
:page => :"Integer",
|
|
184
183
|
:params => :"String",
|
|
184
|
+
:query => :"String",
|
|
185
185
|
:compositions => :"Hash<String, ResultsCompositionInfoResponse>"
|
|
186
186
|
}
|
|
187
187
|
end
|
|
@@ -200,8 +200,7 @@ module Algolia
|
|
|
200
200
|
[
|
|
201
201
|
:"BaseSearchResponse",
|
|
202
202
|
:"ResultsCompositionsResponse",
|
|
203
|
-
:"
|
|
204
|
-
:"SearchPagination"
|
|
203
|
+
:"SearchFields"
|
|
205
204
|
]
|
|
206
205
|
end
|
|
207
206
|
|
|
@@ -338,10 +337,18 @@ module Algolia
|
|
|
338
337
|
self._automatic_insights = attributes[:_automatic_insights]
|
|
339
338
|
end
|
|
340
339
|
|
|
341
|
-
if attributes.key?(:
|
|
342
|
-
|
|
340
|
+
if attributes.key?(:hits)
|
|
341
|
+
if (value = attributes[:hits]).is_a?(Array)
|
|
342
|
+
self.hits = value
|
|
343
|
+
end
|
|
343
344
|
else
|
|
344
|
-
self.
|
|
345
|
+
self.hits = nil
|
|
346
|
+
end
|
|
347
|
+
|
|
348
|
+
if attributes.key?(:hits_per_page)
|
|
349
|
+
self.hits_per_page = attributes[:hits_per_page]
|
|
350
|
+
else
|
|
351
|
+
self.hits_per_page = nil
|
|
345
352
|
end
|
|
346
353
|
|
|
347
354
|
if attributes.key?(:nb_hits)
|
|
@@ -356,18 +363,16 @@ module Algolia
|
|
|
356
363
|
self.nb_pages = nil
|
|
357
364
|
end
|
|
358
365
|
|
|
359
|
-
if attributes.key?(:
|
|
360
|
-
self.
|
|
366
|
+
if attributes.key?(:page)
|
|
367
|
+
self.page = attributes[:page]
|
|
361
368
|
else
|
|
362
|
-
self.
|
|
369
|
+
self.page = nil
|
|
363
370
|
end
|
|
364
371
|
|
|
365
|
-
if attributes.key?(:
|
|
366
|
-
|
|
367
|
-
self.hits = value
|
|
368
|
-
end
|
|
372
|
+
if attributes.key?(:params)
|
|
373
|
+
self.params = attributes[:params]
|
|
369
374
|
else
|
|
370
|
-
self.
|
|
375
|
+
self.params = nil
|
|
371
376
|
end
|
|
372
377
|
|
|
373
378
|
if attributes.key?(:query)
|
|
@@ -376,12 +381,6 @@ module Algolia
|
|
|
376
381
|
self.query = nil
|
|
377
382
|
end
|
|
378
383
|
|
|
379
|
-
if attributes.key?(:params)
|
|
380
|
-
self.params = attributes[:params]
|
|
381
|
-
else
|
|
382
|
-
self.params = nil
|
|
383
|
-
end
|
|
384
|
-
|
|
385
384
|
if attributes.key?(:compositions)
|
|
386
385
|
if (value = attributes[:compositions]).is_a?(Hash)
|
|
387
386
|
self.compositions = value
|
|
@@ -422,13 +421,13 @@ module Algolia
|
|
|
422
421
|
user_data == other.user_data &&
|
|
423
422
|
query_id == other.query_id &&
|
|
424
423
|
_automatic_insights == other._automatic_insights &&
|
|
425
|
-
|
|
424
|
+
hits == other.hits &&
|
|
425
|
+
hits_per_page == other.hits_per_page &&
|
|
426
426
|
nb_hits == other.nb_hits &&
|
|
427
427
|
nb_pages == other.nb_pages &&
|
|
428
|
-
|
|
429
|
-
hits == other.hits &&
|
|
430
|
-
query == other.query &&
|
|
428
|
+
page == other.page &&
|
|
431
429
|
params == other.params &&
|
|
430
|
+
query == other.query &&
|
|
432
431
|
compositions == other.compositions
|
|
433
432
|
end
|
|
434
433
|
|
|
@@ -468,13 +467,13 @@ module Algolia
|
|
|
468
467
|
user_data,
|
|
469
468
|
query_id,
|
|
470
469
|
_automatic_insights,
|
|
471
|
-
|
|
470
|
+
hits,
|
|
471
|
+
hits_per_page,
|
|
472
472
|
nb_hits,
|
|
473
473
|
nb_pages,
|
|
474
|
-
|
|
475
|
-
hits,
|
|
476
|
-
query,
|
|
474
|
+
page,
|
|
477
475
|
params,
|
|
476
|
+
query,
|
|
478
477
|
compositions
|
|
479
478
|
].hash
|
|
480
479
|
end
|
|
@@ -23,6 +23,14 @@ module Algolia
|
|
|
23
23
|
SEE_UNRETRIEVABLE_ATTRIBUTES = "seeUnretrievableAttributes".freeze
|
|
24
24
|
SETTINGS = "settings".freeze
|
|
25
25
|
USAGE = "usage".freeze
|
|
26
|
+
NLU_WRITE_PROJECT = "nluWriteProject".freeze
|
|
27
|
+
NLU_READ_PROJECT = "nluReadProject".freeze
|
|
28
|
+
NLU_WRITE_ENTITY = "nluWriteEntity".freeze
|
|
29
|
+
NLU_READ_ENTITY = "nluReadEntity".freeze
|
|
30
|
+
NLU_WRITE_INTENT = "nluWriteIntent".freeze
|
|
31
|
+
NLU_READ_INTENT = "nluReadIntent".freeze
|
|
32
|
+
NLU_PREDICTION = "nluPrediction".freeze
|
|
33
|
+
NLU_READ_ANSWERS = "nluReadAnswers".freeze
|
|
26
34
|
|
|
27
35
|
def self.all_vars
|
|
28
36
|
@all_vars ||= [
|
|
@@ -40,7 +48,15 @@ module Algolia
|
|
|
40
48
|
SEARCH,
|
|
41
49
|
SEE_UNRETRIEVABLE_ATTRIBUTES,
|
|
42
50
|
SETTINGS,
|
|
43
|
-
USAGE
|
|
51
|
+
USAGE,
|
|
52
|
+
NLU_WRITE_PROJECT,
|
|
53
|
+
NLU_READ_PROJECT,
|
|
54
|
+
NLU_WRITE_ENTITY,
|
|
55
|
+
NLU_READ_ENTITY,
|
|
56
|
+
NLU_WRITE_INTENT,
|
|
57
|
+
NLU_READ_INTENT,
|
|
58
|
+
NLU_PREDICTION,
|
|
59
|
+
NLU_READ_ANSWERS
|
|
44
60
|
].freeze
|
|
45
61
|
end
|
|
46
62
|
|
data/lib/algolia/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: algolia
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 3.
|
|
4
|
+
version: 3.34.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- https://alg.li/support
|
|
@@ -191,6 +191,7 @@ files:
|
|
|
191
191
|
- lib/algolia/models/abtesting/estimate_ab_test_request.rb
|
|
192
192
|
- lib/algolia/models/abtesting/estimate_ab_test_response.rb
|
|
193
193
|
- lib/algolia/models/abtesting/estimate_configuration.rb
|
|
194
|
+
- lib/algolia/models/abtesting/feature_filters.rb
|
|
194
195
|
- lib/algolia/models/abtesting/filter_effects.rb
|
|
195
196
|
- lib/algolia/models/abtesting/list_ab_tests_response.rb
|
|
196
197
|
- lib/algolia/models/abtesting/minimum_detectable_effect.rb
|