in cr-mixer/server/src/main/scala/com/twitter/cr_mixer/candidate_generation/SimClustersInterestedInCandidateGeneration.scala [48:281]
override def get(
query: SimClustersInterestedInCandidateGeneration.Query
): Future[Option[Seq[Seq[TweetWithCandidateGenerationInfo]]]] = {
query.internalId match {
case _: InternalId.UserId =>
StatsUtil.trackOptionItemsStats(fetchCandidatesStat) {
// UserInterestedIn Queries
val userInterestedInCandidateResultFut =
if (query.enableUserInterestedIn && query.enableProdSimClustersANNSimilarityEngine)
getInterestedInCandidateResult(
simClustersANNSimilarityEngine,
query.interestedInSimClustersANNQuery,
query.simClustersInterestedInMinScore)
else
Future.None
val userInterestedInExperimentalSANNCandidateResultFut =
if (query.enableUserInterestedIn && query.enableExperimentalSimClustersANNSimilarityEngine)
getInterestedInCandidateResult(
simClustersANNSimilarityEngine,
query.interestedInExperimentalSimClustersANNQuery,
query.simClustersInterestedInMinScore)
else
Future.None
val userInterestedInSANN1CandidateResultFut =
if (query.enableUserInterestedIn && query.enableSimClustersANN1SimilarityEngine)
getInterestedInCandidateResult(
simClustersANNSimilarityEngine,
query.interestedInSimClustersANN1Query,
query.simClustersInterestedInMinScore)
else
Future.None
val userInterestedInSANN2CandidateResultFut =
if (query.enableUserInterestedIn && query.enableSimClustersANN2SimilarityEngine)
getInterestedInCandidateResult(
simClustersANNSimilarityEngine,
query.interestedInSimClustersANN2Query,
query.simClustersInterestedInMinScore)
else
Future.None
val userInterestedInSANN3CandidateResultFut =
if (query.enableUserInterestedIn && query.enableSimClustersANN3SimilarityEngine)
getInterestedInCandidateResult(
simClustersANNSimilarityEngine,
query.interestedInSimClustersANN3Query,
query.simClustersInterestedInMinScore)
else
Future.None
val userInterestedInSANN5CandidateResultFut =
if (query.enableUserInterestedIn && query.enableSimClustersANN5SimilarityEngine)
getInterestedInCandidateResult(
simClustersANNSimilarityEngine,
query.interestedInSimClustersANN5Query,
query.simClustersInterestedInMinScore)
else
Future.None
val userInterestedInSANN4CandidateResultFut =
if (query.enableUserInterestedIn && query.enableSimClustersANN4SimilarityEngine)
getInterestedInCandidateResult(
simClustersANNSimilarityEngine,
query.interestedInSimClustersANN4Query,
query.simClustersInterestedInMinScore)
else
Future.None
// UserNextInterestedIn Queries
val userNextInterestedInCandidateResultFut =
if (query.enableUserNextInterestedIn && query.enableProdSimClustersANNSimilarityEngine)
getInterestedInCandidateResult(
simClustersANNSimilarityEngine,
query.nextInterestedInSimClustersANNQuery,
query.simClustersInterestedInMinScore)
else
Future.None
val userNextInterestedInExperimentalSANNCandidateResultFut =
if (query.enableUserNextInterestedIn && query.enableExperimentalSimClustersANNSimilarityEngine)
getInterestedInCandidateResult(
simClustersANNSimilarityEngine,
query.nextInterestedInExperimentalSimClustersANNQuery,
query.simClustersInterestedInMinScore)
else
Future.None
val userNextInterestedInSANN1CandidateResultFut =
if (query.enableUserNextInterestedIn && query.enableSimClustersANN1SimilarityEngine)
getInterestedInCandidateResult(
simClustersANNSimilarityEngine,
query.nextInterestedInSimClustersANN1Query,
query.simClustersInterestedInMinScore)
else
Future.None
val userNextInterestedInSANN2CandidateResultFut =
if (query.enableUserNextInterestedIn && query.enableSimClustersANN2SimilarityEngine)
getInterestedInCandidateResult(
simClustersANNSimilarityEngine,
query.nextInterestedInSimClustersANN2Query,
query.simClustersInterestedInMinScore)
else
Future.None
val userNextInterestedInSANN3CandidateResultFut =
if (query.enableUserNextInterestedIn && query.enableSimClustersANN3SimilarityEngine)
getInterestedInCandidateResult(
simClustersANNSimilarityEngine,
query.nextInterestedInSimClustersANN3Query,
query.simClustersInterestedInMinScore)
else
Future.None
val userNextInterestedInSANN5CandidateResultFut =
if (query.enableUserNextInterestedIn && query.enableSimClustersANN5SimilarityEngine)
getInterestedInCandidateResult(
simClustersANNSimilarityEngine,
query.nextInterestedInSimClustersANN5Query,
query.simClustersInterestedInMinScore)
else
Future.None
val userNextInterestedInSANN4CandidateResultFut =
if (query.enableUserNextInterestedIn && query.enableSimClustersANN4SimilarityEngine)
getInterestedInCandidateResult(
simClustersANNSimilarityEngine,
query.nextInterestedInSimClustersANN4Query,
query.simClustersInterestedInMinScore)
else
Future.None
// AddressBookInterestedIn Queries
val userAddressBookInterestedInCandidateResultFut =
if (query.enableAddressBookNextInterestedIn && query.enableProdSimClustersANNSimilarityEngine)
getInterestedInCandidateResult(
simClustersANNSimilarityEngine,
query.addressbookInterestedInSimClustersANNQuery,
query.simClustersInterestedInMinScore)
else
Future.None
val userAddressBookExperimentalSANNCandidateResultFut =
if (query.enableAddressBookNextInterestedIn && query.enableExperimentalSimClustersANNSimilarityEngine)
getInterestedInCandidateResult(
simClustersANNSimilarityEngine,
query.addressbookInterestedInExperimentalSimClustersANNQuery,
query.simClustersInterestedInMinScore)
else
Future.None
val userAddressBookSANN1CandidateResultFut =
if (query.enableAddressBookNextInterestedIn && query.enableSimClustersANN1SimilarityEngine)
getInterestedInCandidateResult(
simClustersANNSimilarityEngine,
query.addressbookInterestedInSimClustersANN1Query,
query.simClustersInterestedInMinScore)
else
Future.None
val userAddressBookSANN2CandidateResultFut =
if (query.enableAddressBookNextInterestedIn && query.enableSimClustersANN2SimilarityEngine)
getInterestedInCandidateResult(
simClustersANNSimilarityEngine,
query.addressbookInterestedInSimClustersANN2Query,
query.simClustersInterestedInMinScore)
else
Future.None
val userAddressBookSANN3CandidateResultFut =
if (query.enableAddressBookNextInterestedIn && query.enableSimClustersANN3SimilarityEngine)
getInterestedInCandidateResult(
simClustersANNSimilarityEngine,
query.addressbookInterestedInSimClustersANN3Query,
query.simClustersInterestedInMinScore)
else
Future.None
val userAddressBookSANN5CandidateResultFut =
if (query.enableAddressBookNextInterestedIn && query.enableSimClustersANN5SimilarityEngine)
getInterestedInCandidateResult(
simClustersANNSimilarityEngine,
query.addressbookInterestedInSimClustersANN5Query,
query.simClustersInterestedInMinScore)
else
Future.None
val userAddressBookSANN4CandidateResultFut =
if (query.enableAddressBookNextInterestedIn && query.enableSimClustersANN4SimilarityEngine)
getInterestedInCandidateResult(
simClustersANNSimilarityEngine,
query.addressbookInterestedInSimClustersANN4Query,
query.simClustersInterestedInMinScore)
else
Future.None
Future
.collect(
Seq(
userInterestedInCandidateResultFut,
userNextInterestedInCandidateResultFut,
userAddressBookInterestedInCandidateResultFut,
userInterestedInExperimentalSANNCandidateResultFut,
userNextInterestedInExperimentalSANNCandidateResultFut,
userAddressBookExperimentalSANNCandidateResultFut,
userInterestedInSANN1CandidateResultFut,
userNextInterestedInSANN1CandidateResultFut,
userAddressBookSANN1CandidateResultFut,
userInterestedInSANN2CandidateResultFut,
userNextInterestedInSANN2CandidateResultFut,
userAddressBookSANN2CandidateResultFut,
userInterestedInSANN3CandidateResultFut,
userNextInterestedInSANN3CandidateResultFut,
userAddressBookSANN3CandidateResultFut,
userInterestedInSANN5CandidateResultFut,
userNextInterestedInSANN5CandidateResultFut,
userAddressBookSANN5CandidateResultFut,
userInterestedInSANN4CandidateResultFut,
userNextInterestedInSANN4CandidateResultFut,
userAddressBookSANN4CandidateResultFut
)
).map { candidateResults =>
Some(
candidateResults.map(candidateResult => candidateResult.getOrElse(Seq.empty))
)
}
}
case _ =>
stats.counter("sourceId_is_not_userId_cnt").incr()
Future.None
}
}