vgritsenko 2004/01/08 19:45:03
Modified: java/src/org/apache/xindice/core/indexer IndexManager.java Log: Indexes now compatible with inline metadata (and binary objects) Revision Changes Path 1.25 +23 -28 xml-xindice/java/src/org/apache/xindice/core/indexer/IndexManager.java Index: IndexManager.java =================================================================== RCS file: /home/cvs/xml-xindice/java/src/org/apache/xindice/core/indexer/IndexManager.java,v retrieving revision 1.24 retrieving revision 1.25 diff -u -r1.24 -r1.25 --- IndexManager.java 8 Jan 2004 03:16:44 -0000 1.24 +++ IndexManager.java 9 Jan 2004 03:45:02 -0000 1.25 @@ -76,6 +76,7 @@ import org.apache.xindice.xml.dom.DocumentImpl; import org.apache.xindice.xml.sax.CompressionHandler; import org.apache.xindice.xml.sax.SAXEventGenerator; +import org.apache.xindice.Stopwatch; import org.w3c.dom.Document; import org.xml.sax.Attributes; @@ -313,15 +314,13 @@ } if (list.length > 0) { - if (true) { - if (log.isDebugEnabled()) { - for (int i = 0; i < list.length; i++) { - log.debug("Index Creation: " + list[i].indexer.getName()); - } + if (log.isTraceEnabled()) { + for (int i = 0; i < list.length; i++) { + log.trace("Index Creation: " + list[i].indexer.getName()); } } - org.apache.xindice.Stopwatch sw = new org.apache.xindice.Stopwatch("Populated Indexes", true); + Stopwatch sw = new Stopwatch("Populated Indexes", true); for (int i = 0; i < list.length; i++) { try { if (!list[i].indexer.exists()) { @@ -331,26 +330,24 @@ list[i].indexer.open(); } catch (Exception e) { if (log.isWarnEnabled()) { - log.warn("ignored exception", e); + log.warn("Failed to create/open indexer " + list[i], e); } } } RecordSet rs = collection.getFiler().getRecordSet(); while (rs.hasMoreRecords()) { - Record rec = rs.getNextRecord(); - if (rec == null) { - continue; - } - - Key key = rec.getKey(); - // FIXME: What about inline metadata??? - Document doc = new DocumentImpl(rec.getValue().getData(), symbols, new NodeSource(collection, key)); - try { - new SAXHandler(key, doc, ACTION_CREATE, list); - } catch (Exception e) { - if (log.isWarnEnabled()) { - log.warn("ignored exception", e); + // Read only key, we don't need filer-level value + Key key = rs.getNextKey(); + Object value = collection.getEntry(key); + if (value instanceof Document) { + // Document doc = new DocumentImpl(rec.getValue().getData(), symbols, new NodeSource(collection, key)); + try { + new SAXHandler(key, (Document)value, ACTION_CREATE, list); + } catch (Exception e) { + if (log.isWarnEnabled()) { + log.warn("Failed to index document " + key, e); + } } } } @@ -367,13 +364,11 @@ } sw.stop(); - if (true) { - if (log.isDebugEnabled()) { - for (int i = 0; i < list.length; i++) { - log.debug("Index Complete: " + list[i].indexer.getName()); - } - log.debug(sw.toString()); + if (log.isDebugEnabled()) { + for (int i = 0; i < list.length; i++) { + log.debug("Index Complete: " + list[i].indexer.getName()); } + log.debug(sw.toString()); } } }