public void TopRankings() { string queryWordId = "testId"; string queryWordId2 = "testId2"; string queryWord = "testValue"; string queryWord2 = "testValue2"; RedisWordSearchConfiguration config = RedisWordSearchConfiguration.defaultConfig; config.RankingProvider = new CurrentlyPopularRanking(AppSettings.RANKING_EPOCH, 1); RedisWordSearch wordSearch = new RedisWordSearch(Database, config); wordSearch.Add(queryWordId, queryWord); wordSearch.BoostInRanking(queryWordId); wordSearch.Add(queryWordId2, queryWord2); wordSearch.BoostInRanking(queryWordId2); wordSearch.BoostInRanking(queryWordId); var words = wordSearch.TopRankedSearches().AsStringList(); Assert.AreEqual(queryWord, words[0]); Assert.AreEqual(queryWord2, words[1]); }
public void IncrementRanking_TestHalfLife() { string queryWordId = "testId"; string queryWordId2 = "testId2"; string queryWord = "testValue"; double secondsToWait = 1; RedisWordSearchConfiguration config = RedisWordSearchConfiguration.defaultConfig; long minAgo = DateTimeOffset.UtcNow.AddSeconds(-10).ToUnixTimeSeconds(); double halfLife = secondsToWait / 3600; config.RankingProvider = new CurrentlyPopularRanking(minAgo, halfLife); RedisWordSearch wordSearch = new RedisWordSearch(Database, config); wordSearch.Add(queryWordId, queryWord); wordSearch.Add(queryWordId2, queryWord); wordSearch.BoostInRanking(queryWordId); wordSearch.BoostInRanking(queryWordId); Thread.Sleep((int)secondsToWait * 1000); wordSearch.BoostInRanking(queryWordId2); double?score1 = wordSearch.CurrentScore(queryWordId); double?score2 = wordSearch.CurrentScore(queryWordId2); Assert.IsTrue((score2 == score1) || (score2 == score1 * 2)); }
public void IncrementRanking() { string queryWordId = "testId"; string queryWord = "testValue"; int halfLife = 6; int halfLifeSeconds = halfLife * 60 * 60; RedisWordSearchConfiguration config = RedisWordSearchConfiguration.defaultConfig; long epoch = DateTimeOffset.UtcNow.ToUnixTimeSeconds() + (1074 * halfLifeSeconds); config.RankingProvider = new CurrentlyPopularRanking(epoch, halfLife); RedisWordSearch wordSearch = new RedisWordSearch(Database, config); wordSearch.Add(queryWordId, queryWord); wordSearch.BoostInRanking(queryWordId); Assert.AreNotEqual(0, wordSearch.CurrentScore(queryWordId)); }