我正在使用 ServiceStack.Redis 来实现一个演示项目。它包含两个 POCO,即专辑及其歌曲。
以下是使用秒表实例测量的搜索结果:
Time elapsed searching 5804 items is 00:00:00.1243984 <-- Albums
Time elapsed searching 138731 items is 00:00:02.0592068 <-- Songs
如您所见,搜索歌曲花费了太多时间。我在 WPF 应用程序中显示结果,其中还输入了搜索词。滞后对于 redis 来说是不行的。
以下是用于搜索的代码:
IEnumerable<int> songsFromRedis =
songRedis.GetAll()
.Where(song => song.Title != null
&& song.Title.ToLowerInvariant().Contains(searchText))
.OrderBy(song => song.Title)
.Select(x => x.AlbumId);
如果我们不能让它更快,ElasticSearch 会有帮助吗?