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());
}
}
}