我正在尝试在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);

(为了一个简单的例子,添加了最后一对跳过和取走)。

此查询总是返回与我所期望的不仅与4个查询相匹配的所有22个文档。

我究竟做错了什么 ?

有帮助吗?

解决方案

这个问题发生在最新的稳定版本(206)上。

我现在已经下载了最新的不稳定构建(251),并且通过此构建,我的代码按预期工作。我想这是我正在使用的版本中的错误。如果我从Ravendb组中的问题中获得更有意义的见解,我将确保在此处发布。

其他提示

我不知道Ravendb的一个猜测。但是,也许乌鸦提供商不支持跳过或接受。

您可以尝试在.ADDORDER之后转换为Ienumerable,以验证这一点。 (然后,您将使用linq到对象进行跳过和采取,请注意,您仍然会先从数据库中获取所有记录)

  ...
  .AddOrder("Published",True)
  .AsEnumerable()
  .Skip(4).Take(4);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top