public void IndexMovie(Movie movie) { using (var sphinx = new DbSphinx()) { var query = new SphinxReplaceBuilder("torronto_movies") .AddField("id", movie.ID.GetValueOrDefault()) .AddField("title", movie.Title) .AddField("original_title", movie.OriginalTitle) .AddField("description", movie.Description) .AddField("status", (int)movie.Status) .Build(); var complTitle = new StringBuilder(movie.Title); if (!string.IsNullOrEmpty(movie.OriginalTitle)) { complTitle.AppendFormat(" / {0}", movie.OriginalTitle); } if (movie.ReleaseDate.HasValue) { complTitle.AppendFormat(" ({0})", movie.ReleaseDate.Value.Year); } var complQuery = new SphinxReplaceBuilder("torronto_movies_completion") .AddField("id", movie.ID.GetValueOrDefault()) .AddField("title", complTitle.ToString()) .AddField("title_indexed", complTitle.ToString()) .Build(); sphinx.Execute(query); sphinx.Execute(complQuery); } }
public void IndexTorrent(Torrent torrent) { using (var sphinx = new DbSphinx()) { var query = new SphinxReplaceBuilder("torronto_torrents") .AddField("id", torrent.ID.GetValueOrDefault()) .AddField("title", torrent.Title) .AddField("video_quality", (int)torrent.VideoQuality) .AddField("sound_quality", (int)torrent.AudioQuality) .AddField("translation", (int)torrent.Translation) .AddField("size", decimal.ToInt32(torrent.Size)) .Build(); sphinx.Execute(query); } }
public void TestReplace() { var query = new SphinxReplaceBuilder("test") .AddField("id", 1) .AddField("title", "No'ah") .AddField("content", null) .AddField("video_quality", 30) .AddField("sound_quality", 20) .Build(); var expected = @"REPLACE INTO `test` (`id`, `title`, `content`, `video_quality`, `sound_quality`) VALUES ('1', 'No\'ah', '', '30', '20')"; Assert.AreEqual(expected, query); }