Betrachten Sie die folgende Abfrage:Mit ungefilterte Suche in Marklogic
xquery version "1.0-ml";
declare namespace ts = "http://marklogic.com/MLU/top-songs";
let $range_query := cts:element-range-query(xs:QName("ts:week"), ">=", xs:date("2009-05-01"))
let $query := cts:search(fn:doc(), $range_query)
return $query/ts:top-song/ts:title/text()
(Nicht: Bereich Index für Woche wurde aktiviert)
Ich glaube, dass die obige Abfrage-Ergebnisse auf Basis geben kann nur auf die Indizes und mit dieser Annahme habe ich die folgende Änderung vorgenommen:
let $query := cts:search(fn:doc(), $range_query, "unfiltered")
Ich habe die gleichen Ergebnisse. Jedoch
,
fn:count($query/ts:top-song/ts:title/text()) gave a result of 8
und
xdmp:estimate($query/ts:top-song/ts:title/text())
gab einen Fehler: Ausdruck ist unerforschlich
Ich glaube, dies bedeutet, dass die Abfrage kann nicht mit Indizes gesucht werden. Wenn ja, warum funktioniert der ungefilterte Ansatz gut?
Ich denke, du meintest xdmp: Schätzung ($ query) sollte mir die Antwort geben. Allerdings gibt es immer noch den Fehler: Ausdruck ist nicht durchsuchbar – Yash
@ Yash, Nein, ich wollte nicht das "Let" kopieren. Die Variablenreferenz ist nicht suchbar. Ich habe die Antwort aktualisiert. – wst