sdx-users
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE : [sdx-users] Upload Mystery


From: Martin Sevigny
Subject: RE : [sdx-users] Upload Mystery
Date: Tue, 11 Feb 2003 10:35:22 +0100

Bonjour,

> -----Message d'origine-----
> De : address@hidden 
> [mailto:address@hidden De la 
> part de Emmanuel Bégué
> Envoyé : vendredi 7 février 2003 22:22
> À : address@hidden
> Objet : RE: [sdx-users] Upload Mystery

> Ca me semble très intéressant comme piste, mais je ne 
> comprends pas concrètement comment "constuire un tableau en 
> xsp"? Pouvez vous m'en dire plus?

La question a été en partie répondue, mais voici un bout de Java à
mettre dans une XSP qui permet de charger un lot de documents en
contrôlant différents paramètres. Ici, on indexe ng groupes de gs
documents, en optimisant les index à tous les bs documents (en général
on met bs = gs). Ces informations provenaient d'un formulaire Web. Le
code fonctionne, il faut juste changer la ligne où l'on trouve "//*"
pour donner la source du document à indexer, par exemple à partir d'une
liste d'URLs, de fichiers, etc.

<!-- Needed request parameters :
  ng: Number of groups of documents to index
  gs: Group size : number of documents per group
  db: Document base id where to index document (db1, db2, db3...)
  bs: Batch size : number of documents to add before optimizing Lucene
indices
-->

<!-- We keep a copy of all needed information -->
                                        
// Number of groups of documents                                        
int nbGroups = Integer.parseInt(request.getParameter("ng"));
                                        
// Number of documents per group
int groupSize = Integer.parseInt(request.getParameter("gs"));
                                        
// Number of documents before optimizing the Lucene index
int batchSize = Integer.parseInt(request.getParameter("bs"));
                                        
// The document base id
String dbName = request.getParameter("db");
                                        
// The document base itself
DocumentBase db = sdx_application.getDocumentBase(dbName);

// Variables for one document and for a group of documents
XMLDocument[] xmlDocs = new XMLDocument[groupSize];
XMLDocument xmlDoc;
                                        
// Loop over the groups
for ( int g = 0; g &lt; nbGroups; g++ ) {

  // Loop over the documents of a group
  for (int r=0; r &lt; groupSize; r++) {
                                                
    // We create an SDX document
    xmlDoc = new XMLDocument();
    xmlDoc.enableLogging(sdx_log);

    // We set thte content of the SDX document with the byte array
    xmlDoc.setContent(); //* Fill in with the URL, the File object,
InputStream, ByteArray, etc.
    xmlDocs[r] = xmlDoc;

  } // End of loop over document from a group

  // Now we index the group of documents
  LuceneIndexParameters params = new LuceneIndexParameters();
  params.setBatchMax(batchSize);
  Date startBatch = new Date();         // Starting time of indexgin,
for logging
  db.index(xmlDocs, db.getDefaultRepository(), params, contentHandler);
  Date endBatch = new Date();                   // End time of indexing,
for logging
                                                
  // We log the number of seconds taken to index
  long millis = endBatch.getTime() - startBatch.getTime();
  long seconds = (millis / 1000);
  sdx_log.info("End of indexation of group " + (g+1) + " in document
base " + dbName + " ; time taken : " + seconds + " seconds");

} // End of loop over groups

A bientôt,

Martin Sévigny





reply via email to

[Prev in Thread] Current Thread [Next in Thread]