Как добавить документы в Lucene.Net.Linq?

Lucene.Net.Linq Проект кажется довольно мощным, и в то время как запросы кажутся довольно простыми, яЯ не совсем уверен, как добавить / обновить документы. Можно ли привести пример или два?

Ответы на вопрос(1)

Решение Вопроса

Есть несколько полных примеров в тестовом проекте наhttps://github.com/themotleyfool/Lucene.Net.Linq/tree/master/source/Lucene.Net.Linq.Tests/Samples.

Однажды ты'настроив сопоставления и инициализировав провайдера, вы вносите обновления, открывая сеанс:

var directory = new RAMDirectory();

var provider = new LuceneDataProvider(directory, Version.LUCENE_30);

using (var session = provider.OpenSession())
{
    session.Add(new Article {Author = "John Doe", BodyText = "some body text", PublishDate = DateTimeOffset.UtcNow});
}

Вы также можете обновить существующие документы. Просто извлеките элемент из сеанса, и сеанс определит, было ли внесено изменение:

using (var session = provider.OpenSession())
{
    var item = session.Query().Single(i => i.Id == someId);
    item.Name = "updated";
}

Или вы можете удалить документы:

using (var session = provider.OpenSession())
{
    var item = session.Query().Single(i => i.Id == someId);
    session.Delete(item);
}

Когда сеанс удаляется, все ожидающие изменения в сеансе записываются в индекс, а затем фиксируются. Это делается в контексте синхронизации, чтобы гарантировать, что все изменения в сеансе фиксируются и рассматриваются атомарно, когда запросы выполняются в других потоках.

 alizx14 авг. 2014 г., 06:41
Здравствуйте, Крис! Я задал вопрос о вашем проекте LINQ to Lucene.Net. Пожалуйста, проверьте его?stackoverflow.com/questions/25300203/...

Ваш ответ на вопрос