GetReviewsById() 공개 메소드

return the reviews by review id
public GetReviewsById ( IEnumerable ids ) : ReviewEntity>.IDictionary
ids IEnumerable
리턴 ReviewEntity>.IDictionary
예제 #1
0
        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();
        }
예제 #2
0
        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();
            }
        }