Wednesday, 12 June 2013

IntelliJ IDEA 11 and CQ5

I was searching in Google for IntelliJ IDEA with CQ5. Found a good tutorial for the same.
Here is a document which explains setup here for anyone else that is interested in setting up IntelliJ and getting started with CQ5.

Requirements:


    IntelliJ IDEA 11
    Apache Maven
    Adobe CQ5 Quickstart – Author Instance
    A knowledge of Apache Maven and how it works


Monday, 10 June 2013

How, When, What - Adobe Search & Promote.


This page contains details of flow of Adobe Search & Promote.

Adobe Search & Promote is one of the leaders in websites Product & Content Searches. How it is different from other technologies is the way we can do customization in search. We can use one of the best feature available in market called promote.

The major aim of any search migration project are given below,

a)    Migration of legacy search system to Search & Promote platform.
b)    Return more relevant results
c)    Use customer-supplied metrics to rank search results

So the flow happens as given below.

•    Create new Search & Promote account for the team.
•    Define metadata schema & configure the URL entry points/ index connector.
•    Using report widgets to see data populated by verifying all results are indexed, verifying all results are returned in the data view & verify that keyword searches are returning best results as offered by S&P.
•    Designing search result pages
•    Facet based search implementation.
•    Implement Sort, facet, breadcrumb, pagination etc.
•    implement best way of navigation by making it easy for users to navigate results using nested facets.
•    More details on content search (data views, sort etc) and transport layer.
•    The output can be configured to deliver HTML or XML as requested by clients.
•    We can do ranking of results based on metrics on previous searches.

Extra Notes:

•    Debug any issues with the search functionality using debug options available and also through analyzing the transport layer output.
•    Then using business rules, direct hits we can display promotional content, such as banners, depending on specific search contexts.

We recommend adobe search & promote for any product/content search in any type of website. If you need assistance, contact Adobe: http://www.adobe.com/in/products/searchandpromote.html

Found we are violating in any of the content of the web page, please contact us through cqguru@gmail.com
Update; Adobe Search & Promote is now Adobe Target

Friday, 24 May 2013

Adobe Search And Promote and performance

Let us see the major things to be taken care to avoid performance issues while implementing Adobe S and P.
As we know search and promote has got many advantages and abundant modes of customization while
implementing for a websearch.

Usually a web can have content search and if it is a website which sells products, there are product searches available to implement. Same time we need to ensure some of the things while we implement it, which can affect the performance of search.

1) Rules implementation.

There are pre and post searches in any search process. So in Search and Promote we should ensure the post search should be minimal and it should not execute many times (need another new search = 0).

2) Templates should be light: There should not be unnecessary loops and keep temlates always light. it helps to improve the performance.

3) Filed table/attribute table implementation: Ensure the field table to be not executed during first page load. ie, always create field table when *only* required.

Wednesday, 27 March 2013

How to use a different Synonym Provider other than Wordnet in CQ?



When we enable spell checker in CQ5, the default synonym provider class is com.day.crx.core.query.wordnet.WordNetSynonyms which is used to perform the spell check.


WordNet uses semantic algorithms to match synonyms. The service that CQ5 is using (WordNet Search - 3.1) works with the Perl implementation of it.


Another way could be,
the spell checker can be configured by using our own properties file as mentioned below

<param name="synonymProviderClass" value="org.apache.jackrabbit.core.query.lucene.PropertiesSynonymProvider"/>

<param name="synonymProviderConfigPath" value="synonyms.properties"/>


Some cases enabling the WordNet synonym providerdo not always meet the spell check need.

Doing semantic analysis programmatically will always create some false positives. If we can live with them we could use WordNet. Otherwise we could look for a different approach based on babelnet.org or just static files.


If we want to implement an additional provider besides the existing one we would need to use a wrapper class for this.

Tuesday, 26 March 2013

How to do automatic versioning of asset in DAY CQ?



Through CQ it can be done as follows : http://dev.day.com/docs/en/cq/current/dam/cq5_dam_version_management.html

Let us see, is there a way where we can configure the versions to be created automatically when an asset is modified externally and uploaded back with same name?


You could do the same using VersionManager API and eventlistner. Please look at http://www.day.com/specs/jcr/2.0/15_Versioning.html. A sample example is provided @ http://wiki.apache.org/jackrabbit/ExamplesPage#Versioning_Basics.

Creating versions of a content element (including assets) is a powerful feature within the content repository API. CQ takes advantage of this feature, e.g. when you activate a page a version is created automatically.

You have to though be aware that creating versions takes a toll on your disk space. Every version created is a snapshot of the last content-element (usually the Web page). And the version folder grows fast and huge.

When you activate a 'page', a version is created automatically. However, you can always have CQ create versions automatically, although we recommend to be cautious with creating versions for assets (due to the asset size and the disk space consumption). If  want to create asset versions automatically, you want to first think when is the best time to do so. This could be e.g. when you update an asset or when you activate an asset. In both cases you can update workflows (DAM Update and/or Activate workflows).

Another way : You can also try to make changes on a page and then check "Sidekick" to see if a version has been created. Then you can do the same thing with an asset, e.g. change some meta data.