Frage

Ich versuche, eine Abfrage auf einem RavenDB Lucene Index zu implementieren und die Ergebnisse Paging.

Ich habe den folgenden Code:

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

(Das letzte Paar überspringen und nehmen Sie wurde zum Zwecke eines einfachen Beispiels hinzugefügt).

Diese Abfrage liefert immer alle 22 Dokumente, die meine Abfrage entspricht, nicht nur 4, wie ich erwarten würde.

Was mache ich falsch?

War es hilfreich?

Lösung

Dieses Problem wurde auf dem letzten stabilen Build auftreten (206).

Ich habe jetzt das neueste instabil Build (251) heruntergeladen und mit diesem Build, mein Code funktioniert wie erwartet. Ich denke, es ist ein Fehler in der Version war ich wurde mit. Wenn ich etwas aussagekräftigere Erkenntnisse aus meiner Frage in der RavenDB Gruppe bekommen, werde ich sicherstellen, dass es hier posten.

Andere Tipps

Nur eine Vermutung hier, wie ich weiß RavenDB nicht. Aber vielleicht ist die Raven-Provider unterstützen nicht überspringen oder nehmen.

Sie könnten versuchen, nach dem .AddOrder in ein IEnumerable konvertieren, das zu überprüfen. (Sie würden dann auf Objekte zu überspringen sein mit Linq und Nehmen, beachten würden Sie noch alle Ihre Datensätze aus der DB bekommen zuerst)

  ...
  .AddOrder("Published",True)
  .AsEnumerable()
  .Skip(4).Take(4);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top