made the indexPath parameter-expanded, so we can reference
[mir.git] / source / mircoders / producer / IndexingProducerNode.java
index 739bfbb..0949f4e 100755 (executable)
@@ -70,15 +70,17 @@ public class IndexingProducerNode implements ProducerNode {
     IndexWriter indexWriter = null;
     Object data;
     Entity entity;
-
+    String index = null;
     long startTime;
     long endTime;
 
     startTime = System.currentTimeMillis();
-
+    
+    
+    
     try {
-      data = ParameterExpander.findValueForKey( aValueMap, contentKey );
-
+      index = ParameterExpander.expandExpression(aValueMap, indexPath);
+      data =  ParameterExpander.findValueForKey( aValueMap, contentKey );
       if (! (data instanceof EntityAdapter)) {
         throw new ProducerFailure("IndexingProducerNode: value of '"+contentKey+"' is not an EntityAdapter, but an " + data.getClass().getName(), null);
       }
@@ -87,20 +89,20 @@ public class IndexingProducerNode implements ProducerNode {
       if (! (entity instanceof EntityContent)) {
         throw new ProducerFailure("IndexingProducerNode: value of '"+contentKey+"' is not a content EntityAdapter, but a " + entity.getClass().getName() + " adapter", null);
       }
-      aLogger.info("Indexing " + (String) entity.getValue("id") + " into " + indexPath);
+      aLogger.info("Indexing " + (String) entity.getValue("id") + " into " + index);
 
       // create an index here if one did not already exist
-      if (! (IndexReader.indexExists(indexPath))){
-       aLogger.error("Didn't find existing index, so I'm making one in "+indexPath);
-       IndexWriter indexCreator = new IndexWriter(indexPath,new StandardAnalyzer(),true);
+      if (! (IndexReader.indexExists(index))){
+       aLogger.error("Didn't find existing index, so I'm making one in "+index);
+       IndexWriter indexCreator = new IndexWriter(index,new StandardAnalyzer(),true);
        indexCreator.close();
       }
 
-      indexReader = IndexReader.open(indexPath);
+      indexReader = IndexReader.open(index);
       indexReader.delete(new Term("id",entity.getValue("id")));
       indexReader.close();
 
-      indexWriter = new IndexWriter(indexPath, new StandardAnalyzer(), false);
+      indexWriter = new IndexWriter(index, new StandardAnalyzer(), false);
       Document theDoc =  new Document();
 
       // Keyword is stored and indexed, but not tokenized
@@ -182,7 +184,7 @@ public class IndexingProducerNode implements ProducerNode {
 
 
       try{
-        FSDirectory theIndexDir=FSDirectory.getDirectory(indexPath,false);
+        FSDirectory theIndexDir=FSDirectory.getDirectory(index,false);
         if (indexReader.isLocked(theIndexDir)){
           indexReader.unlock(theIndexDir);
         }