Вы также можете проверить Lucene2Objects , размещенный в Nuget , и образец вводной статьи в моем блоге . По сути, вы можете абстрагироваться от Lucene и думать об объектах, вы даже можете комментировать свои доменные сущности, например:
[SearchableEntity(DefaultSearchProperty = "Text")]
public class Message
{
public int Id { get; set; }
[Indexed]
public string Text { get; set; }
[Indexed]
public string Title { get; set; }
public DateTime Sent { get; set; }
public DateTime? Read { get; set; }
}
А затем сохраните как это:
var iWriter = new IndexWriter(Environment.CurrentDirectory + @"\index");
var message = new Message { Id = 12, Sent = DateTime.Now,
Text = "Some text on the message!",
Title = "This is the title"
};
iWriter.AddEntity(message);
iWriter.Close();
И ищите свой индекс, как это
var iReader = new IndexReader(Environment.CurrentDirectory + @"\index");
var messages = iReader.Search<Message>("text");
foreach (var message in messages) {
Console.WriteLine("Message: {0}", message.Title);
}
Извините, если ответ слишком длинный.
Надеюсь, я смогу помочь!
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Как вы могли себе представить, я написал библиотеку.