Yes of course you can do queries based on properties.
You have some queries example here:
In XWiki 1.8 and further it will be even better with XWQL (which
requires testing)
  Forwarding this to xwiki devs for input.
 Joshua Marks
 CTO
 Curriki: The Global Education and Learning Community
 jmarks(a)curriki.org
 
www.curriki.org
 US 831-685-3511
 -----Original Message-----
 From: curriki-devs-bounces(a)xwiki.org [mailto:curriki-devs-bounces@xwiki.org]
 On Behalf Of Henri Lesourd
 Sent: Tuesday, March 31, 2009 9:18 AM
 To: curriki-devs(a)xwiki.org
 Subject: [curriki-devs] XWiki HQL queries too slow
 Although it's not specific to Curriki per se, I start by posting my
 question here, for perhaps somebody on the list met this problem before.
 My question is: I need to query documents containing an object from a
 specific Java class, and to access the object. In Vincent Massol's XWiki
 tutorial, examples of how to do this are exclusively described in the
 following way:
 (1) First, query the wiki for the names of all the documents having a
 specific class, e.g.:
 #set ($hql = ", BaseObject as obj where obj.name=doc.fullName and
 obj.className='XWiki.TodoClass'")
 for querying the names of all the documents having the class 'TodoClass'.
 (2) and then, for each document, fetch the document with getDocument(),
 and then
   perform a getObject() for getting the related instance of the Java
 class, which finally
   can be accessed. Here is a typical snippet:
   #foreach ($todo in $todos)
     #set ($todoDoc = $xwiki.getDocument($todo))
     #set ($todoObj = $todoDoc.getObject("XWiki.TodoClass"))
     ........  { Code using $todoObj } ..........
   #end
 Problem is: in my version of the step (1) above I get 1800 documents,
 but next, in step (2), I dismiss most of them by means of performing a
 simple test on the slots of the object obtained from getObject().
 Thus, as it is described above, the technique from the XWiki tutorial is
 highly inefficient, because for the sake of performing the simple test
 you need on the Java object contained in each document, you are forced
 to fetch this document, then read the object with getObject(), and it's
 only then that you can perform your simple test.
 ==>
 Question: is there a possibility to perform the getObject() *inside* the
 HQL query, in such a way that I can fetch and test the slots of a given
 related Java object (e.g., an XWiki.XWikiUsers, or an XWiki.XWikiGroups)
 directly inside the 'where' part of the HQL query ?
 For example, I'd like to be able to write something like:
 #set ($hql = ", BaseObject as obj where obj.name=doc.fullName and
 obj.className='XWiki.XWikiUsers' and
 doc.getObject('XWiki.XWikiUsers').country='Papua New Guinea')")
 for fetching the names of the XWiki pages of all people from Papua New
 Guinea. In such a case, if there are only few of them among several
 hundreds of users from more common nationalities, I run exactly on the
 problem described above.
 Of course, this example with the users is not very useful, and perhaps
 you can do that in another way from inside Java, but the pattern is
 typical. In practice, if you cannot perform simple tests to eliminate
 unwanted items directly inside the HQL, then very easily, you obtain
 programs performing queries lasting several dozens of seconds, which
 quickly becomes unbearable for the users.
 With more users operating in the same time, the response time for a
 simple Velocity program displaying a list of items can even reach
 response times of several minutes, like it happened to us last week
 during the presentation of Intergeo in a seminar in Spain (fortunately,
 people understand that the system is under development, but...).
 Thus I'm looking for an approach to eradicate this problem once for all,
 for otherwise, it will not be possible to build a web-based system
 usable by more than a dozen users, and this would be, hem, annoying so
 to say...
 Thank you in advance,
 Henri
 _______________________________________________
 curriki-devs mailing list
 curriki-devs(a)xwiki.org
 
http://lists.xwiki.org/mailman/listinfo/curriki-devs
 _______________________________________________
 curriki-devs mailing list
 curriki-devs(a)xwiki.org
 
http://lists.xwiki.org/mailman/listinfo/curriki-devs