the-algorithm/home-mixer/server/src/main/scala/com/twitter/home_mixer/util/earlybird/RelevanceSearchUtil.scala

50 lines
1.7 KiB
Scala

package com.twitter.home_mixer.util.earlybird
import com.twitter.search.common.schema.earlybird.EarlybirdFieldConstants.EarlybirdFieldConstant
import com.twitter.search.common.ranking.{thriftscala => scr}
import com.twitter.search.earlybird.{thriftscala => eb}
object RelevanceSearchUtil {
val Mentions: String = EarlybirdFieldConstant.MENTIONS_FACET
val Hashtags: String = EarlybirdFieldConstant.HASHTAGS_FACET
val FacetsToFetch: Seq[String] = Seq(Mentions, Hashtags)
private val RankingParams: scr.ThriftRankingParams = {
scr.ThriftRankingParams(
`type` = Some(scr.ThriftScoringFunctionType.TensorflowBased),
selectedTensorflowModel = Some("timelines_rectweet_replica"),
minScore = -1.0e100,
selectedModels = Some(Map("home_mixer_unified_engagement_prod" -> 1.0)),
applyBoosts = false,
)
}
val MetadataOptions: eb.ThriftSearchResultMetadataOptions = {
eb.ThriftSearchResultMetadataOptions(
getTweetUrls = true,
getResultLocation = false,
getLuceneScore = false,
getInReplyToStatusId = true,
getReferencedTweetAuthorId = true,
getMediaBits = true,
getAllFeatures = true,
returnSearchResultFeatures = true,
// Set getExclusiveConversationAuthorId in order to retrieve Exclusive / SuperFollow tweets.
getExclusiveConversationAuthorId = true
)
}
val RelevanceOptions: eb.ThriftSearchRelevanceOptions = {
eb.ThriftSearchRelevanceOptions(
proximityScoring = true,
maxConsecutiveSameUser = Some(2),
rankingParams = Some(RankingParams),
maxHitsToProcess = Some(500),
maxUserBlendCount = Some(3),
proximityPhraseWeight = 9.0,
returnAllResults = Some(true)
)
}
}