Quiery builder

21
A Presentation by
  • date post

    21-Oct-2014
  • Category

    Education

  • view

    2.021
  • download

    1

description

Adobe CQ 5.5 Query Builder

Transcript of Quiery builder

Page 1: Quiery builder

A Presentation by

Page 2: Quiery builder

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

Page 3: Quiery builder

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

Page 4: Quiery builder

Example usages

A Presentation by

Page 5: Quiery builder

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

Page 6: Quiery builder

Query Builder Debugger

A Presentation by

Page 7: Quiery builder

Anatomy of a query

A Presentation by

Page 8: Quiery builder

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

Page 9: Quiery builder

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

Page 10: Quiery builder

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

Page 11: Quiery builder

Grouping of predicates

A Presentation by

Page 12: Quiery builder

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

Page 13: Quiery builder

Sample Queries

A Presentation by

Page 14: Quiery builder

Sample Queries

A Presentation by

Page 15: Quiery builder

Sample Queries

A Presentation by

Page 16: Quiery builder

Sample Queries

A Presentation by

Page 17: Quiery builder

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

Page 18: Quiery builder

Query Builder Demo

Create a getimages component Include that component on content page

A Presentation by

Page 19: Quiery builder

getimages.jsp contains QueryBuilder API

Query Builder Demo

A Presentation by

Page 20: Quiery builder

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

Query Builder Demo

A Presentation by