Query di esempio

Questi esempi sono forniti nella notazione di stile delle proprietà Java™. Per utilizzarli con l'API Java™, utilizzare un Java™ HashMap come nell'esempio di API seguente.

Per il servlet JSON QueryBuilder, ogni esempio include un collegamento all'installazione locale di CQ (nel percorso predefinito, http://localhost:4502). Accedi all’istanza CQ prima di utilizzare questi collegamenti.

ATTENZIONE
Per impostazione predefinita, il servlet json del generatore di query visualizza un massimo di dieci hit.
L’aggiunta del seguente parametro consente al servlet di visualizzare tutti i risultati della query:
p.limit=-1
NOTA
Per visualizzare i dati JSON restituiti nel browser, puoi usare un plug-in come JSONView per Firefox.

Restituzione di tutti i risultati

La seguente query restituisce dieci risultati (o, per essere precisi, un massimo di dieci), ma ti informa del numero di hit: che sono disponibili:

http://localhost:4502/bin/querybuilder.json?path=/content&1_property=sling:resourceType&1_property.value=foundation/components/text&1_property.operation=like&orderby=path

path=/content
1_property=sling:resourceType
1_property.value=foundation/components/text
1_property.operation=like
orderby=path

La stessa query (con il parametro p.limit=-1) restituirà tutti i risultati (potrebbe essere un numero elevato a seconda dell'istanza):

http://localhost:4502/bin/querybuilder.json?path=/content&1_property=sling:resourceType&1_property.value=foundation/components/text&1_property.operation=like&p.limit=-1&orderby=path

path=/content
1_property=sling:resourceType
1_property.value=foundation/components/text
1_property.operation=like
p.limit=-1
orderby=path

Utilizzo di p.guessTotal per restituire i risultati

Lo scopo del parametro p.guessTotal è restituire il numero appropriato di risultati che possono essere visualizzati combinando i valori p.offset e p.limit vitali minimi. L'utilizzo di questo parametro offre il vantaggio di migliorare le prestazioni con set di risultati di grandi dimensioni. Questo evita di calcolare il totale completo (ad esempio, chiamando result.getSize()) e di leggere l’intero set di risultati, ottimizzato fino al motore e all’indice di Oak. Questa può essere una differenza significativa quando ci sono 100 migliaia di risultati, sia nel tempo di esecuzione che nell'utilizzo della memoria.

Lo svantaggio del parametro è che gli utenti non vedono il totale esatto. Ma puoi impostare un numero minimo come p.guessTotal=1000 in modo che legga sempre fino a 1000, così da ottenere i totali esatti per set di risultati più piccoli, ma se è più di quello, puoi solo mostrare "e altro".

Aggiungi p.guessTotal=true alla query per vedere come funziona:

http://localhost:4502/bin/querybuilder.json?path=/content&1_property=sling:resourceType&1_property.value=foundation/components/text&1_property.operation=like&p.guessTotal=true&orderby=path

path=/content
1_property=sling:resourceType
1_property.value=foundation/components/text
1_property.operation=like
p.guessTotal=true
orderby=path

La query restituisce il valore predefinito p.limit di 10 risultati con un offset 0:

"success": true,
"results": 10,
"total": 10,
"more": true,
"offset": 0,

A partire da AEM 6.0 SP2, è anche possibile utilizzare un valore numerico per contare fino a un numero personalizzato di risultati massimi. Utilizzare la stessa query di cui sopra, ma modificare il valore di p.guessTotal in 50:

http://localhost:4502/bin/querybuilder.json?path=/content&1_property=sling:resourceType&1_property.value=foundation/components/text&1_property.operation=like&p.guessTotal=50&orderby=path

Restituisce un numero con lo stesso limite predefinito di dieci risultati con un offset pari a 0, ma visualizza solo un massimo di 50 risultati:

"success": true,
"results": 10,
"total": 50,
"more": true,
"offset": 0,