我正在尝试在RavenDB Lucene索引上实现查询并对结果进行分页。
我有以下代码:
IDocumentQuery<Post> q = Session.Advanced.LuceneQuery<Post, Posts_Search>()
.WhereContains("BodyHtml", query)
.OrElse()
.WhereContains("Title", query)
.AddOrder("Published", true)
.Skip(4).Take(4);
(最后一对Skip和Take是为了一个简单的例子而添加的。)
此查询始终返回与我的查询匹配的所有22个文档,而不仅仅是4,正如我所期望的那样。
我做错了什么?
答案 0 :(得分:2)
最新的稳定版本(206)出现了这个问题。
我现在已经下载了最新的不稳定版本(251),通过这个版本,我的代码按预期工作。我想这是我使用的版本中的一个错误。如果我从RavenDB小组的问题中获得更有意义的见解,我会确保在此处发布。
答案 1 :(得分:0)
这里只是猜测,因为我不知道RavenDB。但也许Raven提供者不支持skip或take。
您可以尝试在.AddOrder之后转换为IEnumerable来验证。 (然后你会使用Linq to Objects to Skip and Take,注意你仍然会从数据库中获取所有记录)
...
.AddOrder("Published",True)
.AsEnumerable()
.Skip(4).Take(4);