Skip to content

Commit 1ef62cf

Browse files
committed
feat(personalization): add personalization as part of the RankingInfo of the ResponseSearch
1 parent c33b184 commit 1ef62cf

File tree

3 files changed

+34
-17
lines changed

3 files changed

+34
-17
lines changed
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.algolia.search.model.search
2+
3+
import com.algolia.search.serialize.KeyFiltersScore
4+
import com.algolia.search.serialize.KeyRankingScore
5+
import com.algolia.search.serialize.KeyScore
6+
import kotlinx.serialization.SerialName
7+
import kotlinx.serialization.Serializable
8+
9+
@Serializable
10+
public data class Personalization(
11+
/**
12+
* Personalization Score
13+
*/
14+
@SerialName(KeyScore) val score: Int,
15+
/**
16+
* Personalization Ranking Score
17+
*/
18+
@SerialName(KeyRankingScore) val rankingScore: Int,
19+
/**
20+
* Personalization Filters Score
21+
*/
22+
@SerialName(KeyFiltersScore) val filtersScore: Int
23+
)

src/commonMain/kotlin/com/algolia/search/model/search/RankingInfo.kt

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,11 @@
11
package com.algolia.search.model.search
22

33
import com.algolia.search.endpoint.EndpointPlaces
4+
import com.algolia.search.model.multicluster.ClusterName
5+
import com.algolia.search.model.multicluster.UserID
46
import com.algolia.search.model.settings.RankingCriterion
57
import com.algolia.search.model.settings.Settings
6-
import com.algolia.search.serialize.GeoDistance
7-
import com.algolia.search.serialize.KSerializerGeoDistance
8-
import com.algolia.search.serialize.KSerializerGeoPoint
9-
import com.algolia.search.serialize.KeyFilters
10-
import com.algolia.search.serialize.KeyFirstMatchedWord
11-
import com.algolia.search.serialize.KeyGeoDistance
12-
import com.algolia.search.serialize.KeyGeoPoint
13-
import com.algolia.search.serialize.KeyGeoPrecision
14-
import com.algolia.search.serialize.KeyMatchedGeoLocation
15-
import com.algolia.search.serialize.KeyNbExactWords
16-
import com.algolia.search.serialize.KeyNbTypos
17-
import com.algolia.search.serialize.KeyPromoted
18-
import com.algolia.search.serialize.KeyProximityDistance
19-
import com.algolia.search.serialize.KeyQuery
20-
import com.algolia.search.serialize.KeyUserScore
21-
import com.algolia.search.serialize.KeyWords
8+
import com.algolia.search.serialize.*
229
import kotlinx.serialization.SerialName
2310
import kotlinx.serialization.Serializable
2411

@@ -83,5 +70,9 @@ public data class RankingInfo(
8370
/**
8471
* Only returned for [EndpointPlaces.searchPlaces].
8572
*/
86-
@SerialName(KeyQuery) val query: String? = null
73+
@SerialName(KeyQuery) val query: String? = null,
74+
/**
75+
* Only returned when personalization is enabled
76+
*/
77+
@SerialName(KeyPersonalization) val personalization: Personalization? = null
8778
)

src/commonMain/kotlin/com/algolia/search/serialize/KeysTwo.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,3 +195,6 @@ public const val KeyInner_Queries = "inner_queries"
195195
public const val KeyIndex_Name = "index_name"
196196
public const val KeyQuery_ID = "query_id"
197197
public const val KeyUser_Token = "user_token"
198+
public const val KeyPersonalization = "personalization"
199+
public const val KeyRankingScore = "rankingScore"
200+
public const val KeyFiltersScore = "filtersScore"

0 commit comments

Comments
 (0)