Answering my own questions: 
It does not seem like the jcr:score is included in the Content objects returned 
from the query anywhere. The jcr:score does not seem to be anywhere in the 
javax.jcr.Node object for the Content object either. But the it is in the 
javax.jcr.query.Row. The BeanShell script below will give you a list of the 
nodes with their jcr:scores. So doing a query on the website repository and the 
same query on the dms and afterwards combining the two result lists to one 
should be feasible although not easy.

-will



import info.magnolia.cms.core.*;
import info.magnolia.cms.util.*;
import info.magnolia.context.*;
import java.util.*;
import javax.jcr.*;
import javax.jcr.query.*;

ctx = MgnlContext.getSystemContext();
MgnlContext.setInstance(ctx);
hm = ctx.getHierarchyManager("website");

String queryString = 
"/jcr:root//*...@jcr:primaryType='mgnl:content']//*[jcr:contains(., 'contact')] 
order by @jcr:score descending";
Workspace ws = hm.getWorkspace();
javax.jcr.query.QueryManager qm = ws.getQueryManager();

javax.jcr.query.Query q = qm.createQuery(queryString, 
javax.jcr.query.Query.XPATH);
javax.jcr.query.QueryResult r = q.execute();

String[] columns = r.getColumnNames();
print(columns);

NodeIterator nodes = r.getNodes();
RowIterator rows = r.getRows();

Node currNode;
Row currRow;
int i = 1;
while (nodes.hasNext()) {
        currNode = nodes.next();
        if (rows.hasNext()) {
                currRow = rows.next();
        } else {
                currRow = null;
        }
        if (currRow != null) {
                print("Row " + i + ": " + currNode + "(" + 
currRow.getValue("jcr:score").getString() + ")");
        } else {
                print("Row " + i + ": " + currNode + "(-)");
        }
        i++;
}


On 20.06.2010, at 21:12, Will Scheidegger wrote:

> 
> Dear Magnolians
> 
> So queries can be ordered by "jcr:score"... but how can I access the 
> jcr:score? According to [1] jcr:score is a ColumnSpecifier, except that it 
> seems the column cannot be accessed, because jcr:score
> - is not stored in the MetaData of the Content objects returned from the query
> - is not in the properties of the javax.jcr.Node object associated with the 
> Content object
> 
> Does this value only exist during query time and does not make it to the 
> returned objects? If so how would you query on two different location or 
> repositories merging the hits ordered by their score? Or to be more precise: 
> How can I query the website and dms at the same time returning the hits in 
> one combined list according to their score?
> 
> Thanks!
> -will
> 
> ----------------------------------------------------------------
> For list details see
> http://www.magnolia-cms.com/home/community/mailing-lists.html
> To unsubscribe, E-mail to: <[email protected]>
> ----------------------------------------------------------------
> 


----------------------------------------------------------------
For list details see
http://www.magnolia-cms.com/home/community/mailing-lists.html
To unsubscribe, E-mail to: <[email protected]>
----------------------------------------------------------------

Reply via email to