Quiery builder

Post on 21-Oct-2014

2.021 views 1 download

Tags:

description

Adobe CQ 5.5 Query Builder

Transcript of Quiery builder

A Presentation by

Content :

What Is Query Builder? Example usages Why Query Builder? Query Builder Debugger Anatomy of a query Predicate resolution & execution Standard predicates Ordering Grouping of predicates Facets Sample Queries Javadoc Links Query Builder Demo References

A Presentation by

What is QueryBuilder

QueryBuilder is a service for building Queries searching the Java Content Repository and which are easily extensible

A Query represents a JCR repository query that can be created programmatically, with a list of so-called Predicates

A Predicate is a single constraint for a Query. It is a pure data model object, consisting of a parameter map based on key-value string pairs.

This service allows to create queries with several convenience methods

In addition, it allows to store queries in the repository and load them again.

A Presentation by

Example usages

A Presentation by

Why Query Builder?

Because QueryBuilder is... an API to build queries for a query engine (JCR XPath

underneath) especially via URL query parameters (GET & POSTs) compatible with HTML forms allowing to add/remove conditions (“predicates”)

individually allowing copy/paste of queries easily extensible providing some goodies (e.g. facets)

A Presentation by

Query Builder Debugger

A Presentation by

Anatomy of a query

A Presentation by

Predicate resolution & execution

Internally, a predicate evaluator is resolved Based on the type OSGi component (using factories) Handles:

mapping to xpath (required) filtering of results custom ordering mechanism facet extraction

Multiple predicates of the same type(define an order)

A Presentation by

Standard predicates

path supports multiple paths but beware: can be slow

property JCR property different operations

type node type

fulltext full text search

range daterange similar

rep:similar tagid & tag language

page languages event

calendar example for shortening

A Presentation by

Ordering

Use (special) orderby predicate sort ascending by default, use orderby.desc=true for descending

(1) Order by JCR properties orderby=@cq:tags orderby=@jcr:content/cq:tags

(2) Reference predicate by name orderby=1_property predicate evaluator must provide ordering simply a list of properties (=> used in xpath query) or a custom Comparator (=> run after filtering)

Multiple orderings 1_orderby=@cq:tags 2_orderby=@cq:lastModified 3_orderby=nodename

A Presentation by

Grouping of predicates

A Presentation by

Facets Extract set of possible values found in current result Options for a more specific query Facet = set of buckets

Facet = tag Buckets = product, business, marketing

Buckets can also be custom ranges Facet = daterange Buckets = yesterday, last week, last year...

A Presentation by

Sample Queries

A Presentation by

Sample Queries

A Presentation by

Sample Queries

A Presentation by

Sample Queries

A Presentation by

Javadoc Links

Javadoc Description

com.day.cq.search Basic QueryBuilder and Query API

com.day.cq.search.result Result API

com.day.cq.search.facets Facets

com.day.cq.search.facets.buckets Buckets (contained within facets)

com.day.cq.search.eval Predicate Evaluators

com.day.cq.search.facets.extractors Facet Extractors (for evaluators)

com.day.cq.search.writer JSON Result Hit Writer for Querybuilder servlet (/bin/querybuilder.json)

A Presentation by

Query Builder Demo

Create a getimages component Include that component on content page

A Presentation by

getimages.jsp contains QueryBuilder API

Query Builder Demo

A Presentation by

This component is used to get images from dam:Asset/jcr:content/image/jpeg tag

Query Builder Demo

A Presentation by