Skip to content

Commit 190116e

Browse files
authored
Merge pull request #186 from algolia/fix/personalization
feat(personalization): add personalization as part of the RankingInfo
2 parents cf3a9ad + bbc31ef commit 190116e

File tree

4 files changed

+35
-2
lines changed

4 files changed

+35
-2
lines changed

src/commonMain/kotlin/com/algolia/search/model/response/ResponseSearch.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -332,7 +332,7 @@ public data class ResponseSearch(
332332
public val distinctSeqIDOrNull: Int? = json.getPrimitiveOrNull(Key_DistinctSeqID)?.int
333333

334334
public val rankingInfoOrNull: RankingInfo? = json.getObjectOrNull(Key_RankingInfo)?.let {
335-
Json.fromJson(RankingInfo.serializer(), it)
335+
JsonNonStrict.fromJson(RankingInfo.serializer(), it)
336336
}
337337

338338
public val highlightResultOrNull: JsonObject? = json.getObjectOrNull(Key_HighlightResult)
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 & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
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
68
import com.algolia.search.serialize.GeoDistance
@@ -19,6 +21,7 @@ import com.algolia.search.serialize.KeyProximityDistance
1921
import com.algolia.search.serialize.KeyQuery
2022
import com.algolia.search.serialize.KeyUserScore
2123
import com.algolia.search.serialize.KeyWords
24+
import com.algolia.search.serialize.KeyPersonalization
2225
import kotlinx.serialization.SerialName
2326
import kotlinx.serialization.Serializable
2427

@@ -83,5 +86,9 @@ public data class RankingInfo(
8386
/**
8487
* Only returned for [EndpointPlaces.searchPlaces].
8588
*/
86-
@SerialName(KeyQuery) val query: String? = null
89+
@SerialName(KeyQuery) val query: String? = null,
90+
/**
91+
* Only returned when personalization is enabled
92+
*/
93+
@SerialName(KeyPersonalization) val personalization: Personalization? = null
8794
)

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)