首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Lucene.Net.Linq中添加文档?

如何在Lucene.Net.Linq中添加文档?
EN

Stack Overflow用户
提问于 2013-11-21 19:34:28
回答 1查看 2.1K关注 0票数 4

Lucene.Net.Linq项目看起来相当强大,虽然查询看起来很简单,但我不太确定如何添加/更新文档。可以举出一两个例子吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-21 20:10:47

https://github.com/themotleyfool/Lucene.Net.Linq/tree/master/source/Lucene.Net.Linq.Tests/Samples的测试项目中有一些完整的例子。

一旦配置了映射并初始化了提供程序,就可以通过打开会话进行更新:

代码语言:javascript
复制
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});
}

还可以更新现有文档。只需从会话中检索项目,会话将检测是否进行了修改:

代码语言:javascript
复制
using (var session = provider.OpenSession<Article>())
{
    var item = session.Query().Single(i => i.Id == someId);
    item.Name = "updated";
}

或者您可以删除文档:

代码语言:javascript
复制
using (var session = provider.OpenSession<Article>())
{
    var item = session.Query().Single(i => i.Id == someId);
    session.Delete(item);
}

在释放会话时,会将会话中所有挂起的更改写入索引,然后提交。这是在同步上下文中完成的,以确保在其他线程上执行查询时,会话中的所有更改都会自动提交和查看。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20130281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档