Hi list,

I have some days with a problem and I hope anybody can help me. I have
developed an extension module to search documents in an eXist collection
using Lucene. The module works fine and returns a Sequence with all the
documents matching a query sorted by the score of Lucene, but when I call
the function of the module in an XQuery script, the documents don't appear
in the same order.

I have this function which take an array with the document's names as
argument and returns a NodeSet with this documents from eXist collection:

protected static NodeSet getDocuments(String[] cgDocNames, DBBroker broker)
throws XPathException
    {
        //Creamos una Secuencia para almacenar los resultados
        ExtArrayNodeSet documents = new ExtArrayNodeSet(cgDocNames.length,
1);

        //obtiene la coleccion de reportes
        Collection cdData =
broker.getCollection(XmldbURI.create(JReportsModule.REPORTSDIRECTORY_DATA_COLLECTION));

        //itera sobre los nombres de reportes
        for(int i = 0; i < cgDocNames.length; i ++)
        {
            //System.out.println(cgDocNames[i]);

            DocumentImpl cgDoc = cdData.getDocument(broker,
XmldbURI.create(cgDocNames[i].substring(cgDocNames[i].indexOf("
")+1,cgDocNames[i].length())));
            if(cgDoc != null){
                //aƱade el reporte a la secuencia de resultados
                documents.add(new NodeProxy(cgDoc));
            }
        }
        documents.sort(true);
        return (NodeSet) documents;
    }

In the eval function of the extension module I call this getDocuments
function and that's the Sequence eval returns. Until this moment it seems
the documents are in the correct order, but when I call the function of the
extension module in an XQuery script the documents are returned in unorder.

Is the description clear? because my english is not very good.

Thanks

Reply via email to