cancel
Showing results for 
Search instead for 
Did you mean: 

Need for a 'real' query language?

hbf
Champ on-the-rise
Champ on-the-rise
Dear list,

I would like to know into what direction Alfresco is steering in future releases as far as a "general query language" for searching the repository is concerned?

We have been working intensively with Alfresco for 3 month and have been impressed by the many features that Alfresco's repository architecture offers. The only repository area where we have run into problems is the query/search services, and I would like to share our experiences – in the hope that this serves as feedback to the Alfresco development team and maybe brings together wishes from other Alfresco users.

What we would have needed is a programmatical query method that is

(a) very fast, and
(b) provides features similar to the ones available in SQL.

Currently, Alfresco provides Lucene, XPath, and selectnodes to perform queries against the repository. The latter two are often rather slow, if you compare their performance to a simple SQL-based application that runs the query using SQL. Try for instance to find all values of a property using selectnode's "//@mySmiley Tongueroperty" – it takes rather long.

Lucene on the other hand only provides a restricted feature set and does not, I feel, qualify as a full "query language". For instance, you cannot search for all nodes whose date property my:d1 is smaller than date property my:d2.

If a future version of Alfresco can provide a very fast and moderately feature-rich query language, Alfresco would, in my opinion, be very, very widely applicable and would be an even more powerful product than it is now. A fast query language is, in my opinion, also very much needed to successfully position Alfresco in the web-world: features like AJAX require results in ms and the competition is using very simple MySQL-applications that can benefit from SQL, its expression power and indexing capabilities.

The Alfresco wiki provides some information on query languages but these notes are probably outdated (?). I would be very interested in more concrete plans!

Many thanks for any comments,
Kaspar
11 REPLIES 11

rdanner
Champ in-the-making
Champ in-the-making
Dear list,

I would like to know into what direction Alfresco is steering in future releases as far as a "general query language" for searching the repository is concerned?

We have been working intensively with Alfresco for 3 month and have been impressed by the many features that Alfresco's repository architecture offers. The only repository area where we have run into problems is the query/search services, and I would like to share our experiences – in the hope that this serves as feedback to the Alfresco development team and maybe brings together wishes from other Alfresco users.

What we would have needed is a programmatical query method that is

(a) very fast, and
(b) provides features similar to the ones available in SQL.

Currently, Alfresco provides Lucene, XPath, and selectnodes to perform queries against the repository. The latter two are often rather slow, if you compare their performance to a simple SQL-based application that runs the query using SQL. Try for instance to find all values of a property using selectnode's "//@mySmiley Tongueroperty" – it takes rather long.

Lucene on the other hand only provides a restricted feature set and does not, I feel, qualify as a full "query language". For instance, you cannot search for all nodes whose date property my:d1 is smaller than date property my:d2.

If a future version of Alfresco can provide a very fast and moderately feature-rich query language, Alfresco would, in my opinion, be very, very widely applicable and would be an even more powerful product than it is now. A fast query language is, in my opinion, also very much needed to successfully position Alfresco in the web-world: features like AJAX require results in ms and the competition is using very simple MySQL-applications that can benefit from SQL, its expression power and indexing capabilities.

The Alfresco wiki provides some information on query languages but these notes are probably outdated (?). I would be very interested in more concrete plans!

Many thanks for any comments,
Kaspar

Hi Kaspar,

Paul will have to confirm but I believe a SQL like language is being introduced for version 3.  In any event if you want to try and keep up with this and keep an eye on its progress download the HEAD from SVN.  Even if you develop against it you may want to run an update each week just to see what is changing.

-R

Release 3.0

Release 3.0 will be delivered at the end of November (which is one of our fiscal quarter ends).

    * REST-based API. We anticipate that there will be new content management standards that will be REST based in this time frame.
    * JSR-283. We will implement some of the first features of JSR-283 (JCR 2.0) in this release.
    * SQL-based Query Language. With this standard will be new REST API interfaces and new language definitions that we expect to be SQL based. We may provide this type of capability sooner through more of a JCR-style of interface.
    * Replication. We will be extending our distributed capabilities with more enhancements to our federated search and multi-directional replication for geographic distribution.
    * System Administration. We will also provide additional system administration capabilities that are more autonomic.
    * Architecture Refactoring. We will also refactor portions of the architecture and replace components that have better alternatives or limit our license flexibility.

hbf
Champ on-the-rise
Champ on-the-rise
Paul will have to confirm but I believe a SQL like language is being introduced for version 3.  In any event if you want to try and keep up with this and keep an eye on its progress download the HEAD from SVN.  Even if you develop against it you may want to run an update each week just to see what is changing.
Wow, that sounds great!

Is there some implementation plan – even if in a very raw state – available on this on the wiki or somewhere? I am especially interested in performance as this was the area where we had problems (and had to build our own caching layer).

Thanks,
Kaspar

hbf
Champ on-the-rise
Champ on-the-rise
Dear rdanner,

Where can I find the code you mention in HEAD? I am indeed curious what concrete SQL-features we are going to see in 3.0!

Background: As I've mentioned, my main motivation for this is speed. I am using Alfresco as the backend for a website and have run into significant performance problems when one/several queries need to be run in order to generate the XHTML of a page. For instance, some pages show a list of identically tagged nodes, and such queries take very much longer than in traditional CMSs like Drupal, Yoomla!, etc. So apart from more expressiveness, I am very much interested into performance: "+1" on performance priority for SQL!

Thanks in advance,
Kaspar

hbf
Champ on-the-rise
Champ on-the-rise
Where can I find the code you mention in HEAD?

Does somebody know the path in SVN?

Thanks,
Kaspar

mabayona
Champ on-the-rise
Champ on-the-rise
I´m following SVN updates y I do not think that this SQL-like functionality has been added yet. At least not in the public part of SVN.

hbf
Champ on-the-rise
Champ on-the-rise
I'm following SVN updates y I do not think that this SQL-like functionality has been added yet. At least not in the public part of SVN.

So let's hope the code is in the private SVN then ;-).

hbf
Champ on-the-rise
Champ on-the-rise
The Roadmap does not list "SQL-based query language" anymore. Does this mean it is out for 3.0?

jck
Champ in-the-making
Champ in-the-making
We developed a module which permits to use real SQL to extract meta data from Alfresco. More information can be found on this wiki :
* http://wiki.bluexml.com/index.php/Alfresco_SQL_views

HTH,

Jean-Christophe

andy
Champ on-the-rise
Champ on-the-rise
Hi

The CMIS APIs contain a SQL 92 based query language.

Andy