1

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 の最後のペアは、単純な例のために追加されました)。

このクエリは、予想どおり、4 つだけでなく、クエリに一致する 22 のドキュメントすべてを常に返します。

私は何を間違っていますか?

4

2 に答える 2

2

この問題は、最新の安定ビルド (206) で発生していました。

最新の不安定なビルド (251) をダウンロードしました。このビルドでは、コードが期待どおりに動作します。私が使っていたバージョンのバグだったと思います。RavenDB グループでの質問からさらに意味のある洞察を得た場合は、必ずここに投稿します。

于 2011-01-13T22:07:21.680 に答える
0

私はRavenDBを知らないので、ここで推測してください。しかし、Raven プロバイダーはスキップまたはテイクをサポートしていない可能性があります。

.AddOrder の後に IEnumerable に変換して、それを確認できます。(その後、Linq to Objects to Skip and Take を使用しますが、最初に DB からすべてのレコードを取得することに注意してください)

  ...
  .AddOrder("Published",True)
  .AsEnumerable()
  .Skip(4).Take(4);
于 2011-01-12T20:13:55.820 に答える