4
Lucene.Net.Linq項目看起來非常強大,而查詢似乎很簡單,我不知道如何添加/更新文檔。可以提供一個或兩個示例嗎?如何在Lucene.Net.Linq中添加文檔?
Lucene.Net.Linq項目看起來非常強大,而查詢似乎很簡單,我不知道如何添加/更新文檔。可以提供一個或兩個示例嗎?如何在Lucene.Net.Linq中添加文檔?
在測試項目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<Article>())
{
session.Add(new Article {Author = "John Doe", BodyText = "some body text", PublishDate = DateTimeOffset.UtcNow});
}
您還可以更新現有的文件。只需從會話中檢索的項目,該會議將檢測一個修改,是:
using (var session = provider.OpenSession<Article>())
{
var item = session.Query().Single(i => i.Id == someId);
item.Name = "updated";
}
也可以刪除文件:
using (var session = provider.OpenSession<Article>())
{
var item = session.Query().Single(i => i.Id == someId);
session.Delete(item);
}
當會話配置,在所有掛起更改會話被寫入索引,然後提交。這是在同步上下文中完成的,以確保在其他線程上執行查詢時,會話中的所有更改都被原子地提交和查看。
你好克里斯我問了一個關於你的LINQ到Lucene.Net項目的問題,請你檢查一下嗎? http://stackoverflow.com/questions/25300203/difference-between-linqtolucene-and-linq-to-lucene-net – alizx