public static void AddHashTag(this Postcard postcard, string hashTag) { using (ApplicationDbContext db = new ApplicationDbContext()) { postcard = db.Postcards.Single(p => p.Id == postcard.Id); HashTag existingHashTag = db.HashTags.SingleOrDefault(h => h.Value == hashTag); if (existingHashTag == null) { existingHashTag = new HashTag { Value = hashTag }; HashTagSearcher.AddUpdateLuceneIndex(existingHashTag); } postcard.HashTags.Add(existingHashTag); db.SaveChanges(); } }
public static void AddUpdateLuceneIndex(HashTag hashTag) { AddUpdateLuceneIndex(new List<HashTag> { hashTag }); }
private static void AddToLuceneIndex(HashTag hashTag, IndexWriter writer) { var searchQuery = new TermQuery(new Term("Id", hashTag.Id.ToString())); writer.DeleteDocuments(searchQuery); var doc = new Document(); doc.Add(new Field("Id", hashTag.Id.ToString(), Field.Store.YES, Field.Index.NOT_ANALYZED)); doc.Add(new Field("Value", hashTag.Value, Field.Store.YES, Field.Index.ANALYZED)); writer.AddDocument(doc); }