public GetReviewsById ( IEnumerable |
||
ids | IEnumerable |
|
리턴 | ReviewEntity>.IDictionary |
public ActionResult Search(string q) { var connectionString = CloudConfigurationManager.GetSetting("StorageTableConnectionString"); Trace.TraceInformation("Connection str read"); ConnectionSettingsSingleton.Instance.StorageConnectionString = connectionString; if (string.IsNullOrWhiteSpace(q)) { q = "testsample"; } var tableMgr = new TableManager(); var movie = tableMgr.GetMovieById(q); var resp = new StringBuilder(); if (movie != null) { resp.Append("Movie Name : "); resp.Append(movie.Name); var reviews = movie.GetReviewIds(); var reviewList = tableMgr.GetReviewsById(reviews); foreach (var reviewEntity in reviewList) { resp.Append("\r\n With review -- "); resp.Append(reviewEntity.Value.Review); } } else { resp.Append("No movie found"); } ViewBag.Message = "You searched for " + q + "and the response you got was: " + resp; return View(); }
public void IndexSelectedReviews(ISet<string> reviewIds) { StandardAnalyzer analyzer = null; IndexWriter writer = null; try { analyzer = new StandardAnalyzer(Version.LUCENE_30); writer = new IndexWriter(_dirLocation, analyzer, IndexWriter.MaxFieldLength.UNLIMITED); var tableManager = new TableManager(); var reviewList = tableManager.GetReviewsById(GenerateListFromSet(reviewIds)); foreach (var id in reviewIds) { if (reviewList.ContainsKey(id)) { Trace.TraceInformation("Adding {0} to the index", id); var reviewEntity = reviewList[id]; // delete entry if exists var searchQuery = new TermQuery(new Term(Constants.Constants.Field_Id, id)); writer.DeleteDocuments(searchQuery); // add to index again var doc = new Document(); doc.Add(new Field(Constants.Constants.Field_Id, reviewEntity.ReviewId, Field.Store.YES, Field.Index.NOT_ANALYZED)); doc.Add(new Field(Constants.Constants.Field_EntityType, Constants.Constants.Field_EntityType_Reviews, Field.Store.YES, Field.Index.NOT_ANALYZED)); doc.Add(new Field(Constants.Constants.Field_ReviewerName, reviewEntity.ReviewerName, Field.Store.YES, Field.Index.ANALYZED)); doc.Add(new Field(Constants.Constants.Field_EntityType_ReviewText, reviewEntity.Review, Field.Store.YES, Field.Index.ANALYZED)); writer.AddDocument(doc); } else { Trace.TraceWarning("movie {0} not present in db", id); } } } catch (Exception err) { Trace.TraceError("Failed to build index {0}", err); } finally { if (analyzer != null) analyzer.Close(); if (writer != null) writer.Dispose(); } }