Question

Je suis en train de mettre en œuvre une requête sur un index Lucene RavenDB et la pagination des résultats.

Je le code suivant:

        IDocumentQuery<Post> q = Session.Advanced.LuceneQuery<Post, Posts_Search>()
            .WhereContains("BodyHtml", query)
            .OrElse()
            .WhereContains("Title", query)
            .AddOrder("Published", true)
            .Skip(4).Take(4);

(La dernière paire de Skip et Take a été ajouté au nom d'un exemple simple).

Cette requête renvoie toujours tous les 22 documents qui correspond à ma requête, non seulement 4, comme je l'attendre.

Qu'est-ce que je fais mal?

Était-ce utile?

La solution

Ce problème se produisait sur la dernière version stable de (206).

J'ai maintenant téléchargé la dernière version instable (251), et avec cette version, mon code fonctionne comme prévu. Je suppose que ce fut un bug dans la version que j'utilisais. Si je reçois quelque chose aperçu plus significatif de ma question dans le groupe RavenDB, je ferai en sorte de le poster ici.

Autres conseils

Juste une supposition ici que je ne sais pas RavenDB. Mais peut-être le fournisseur Raven ne supporte pas sauter ou prendre.

Vous pouvez essayer de convertir un IEnumerable après votre .AddOrder pour vérifier que. (Vous serez alors en utilisant LINQ to Objects à Skip et prendre, note que vous seriez encore trouvé tous vos dossiers de la DB en premier)

  ...
  .AddOrder("Published",True)
  .AsEnumerable()
  .Skip(4).Take(4);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top