예제 #1
0
 /// <summary>
 /// Removes the message field from the document
 /// </summary>
 public void DeleteMessage(int topicId, int messageId)
 {
     if (!Config.Enabled)
     {
         return;
     }
     var writer = GetWriter();
     Document doc = null;
     using (var searcher = new IndexSearcher(writer.GetReader()))
     {
         doc = searcher.SearchById(topicId);
     }
     if (doc == null)
     {
         return;
     }
     doc.RemoveMessage(messageId);
     writer.Update(topicId, doc, Analyzer, Config);
     writer.Commit();
 }
예제 #2
0
        /// <summary>
        /// Updates the document fields 
        /// </summary>
        public void Update(Topic topic)
        {
            if (!Config.Enabled)
            {
                return;
            }
            var writer = GetWriter();
            Document doc = null;
            using (var searcher = new IndexSearcher(writer.GetReader()))
            {
                doc = searcher.SearchById(topic.Id);
            }
            if (doc == null)
            {
                return;
            }

            doc.GetDescriptionField().SetValue(topic.Description);
            doc.GetTitleField().SetValue(topic.Title);
            doc.GetTagsField().SetValue(topic.Tags.ToString());
            writer.Update(topic.Id, doc, Analyzer, Config);
            writer.Commit();
        }
예제 #3
0
 /// <summary>
 /// Adds the message as document (topic) field
 /// </summary>
 /// <param name="topic"></param>
 public void Add(Message message)
 {
     if (!Config.Enabled)
     {
         return;
     }
     if (message.Id > Config.MaxMessages)
     {
         return;
     }
     var writer = GetWriter();
     Document doc = null;
     using (var searcher = new IndexSearcher(writer.GetReader()))
     {
         doc = searcher.SearchById(message.Topic.Id);
     }
     if (doc == null)
     {
         return;
     }
     var dateField = doc.GetDateField();
     dateField.SetValue(DateTools.DateToString(message.Date, DateTools.Resolution.MINUTE));
     doc.Add(message.ToField());
     writer.Update(message.Topic.Id, doc, Analyzer, Config);
     writer.Commit();
 }