Changeset 18464

Show
Ignore:
Timestamp:
05.02.2009 14:02:25 (11 years ago)
Author:
davidb
Message:

Support for reindexing documents

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • indexers/trunk/lucene-gs/src/org/greenstone/LuceneWrapper/GS2LuceneIndexer.java

    r18444 r18464  
    294294    public void startDocument() throws SAXException  
    295295    { 
    296         if (mode_.equals("index")) { 
    297         println("Starting to index " + file_id_); 
    298         print("["); 
    299         } 
     296        println("Starting to process " + file_id_); 
     297        print("["); 
    300298    } 
    301299 
    302300    public void endDocument() throws SAXException  
    303301    { 
    304         if (mode_.equals("index")) { 
    305         println("]"); 
    306         println("... indexing finished."); 
    307         } 
     302        println("]"); 
     303        println("... processing finished."); 
    308304    } 
    309305 
     
    311307        throws SAXException  
    312308    { 
    313         if (mode_.equals("index")) { 
    314         path_ = appendPathLink(path_, qName, atts); 
     309        path_ = appendPathLink(path_, qName, atts); 
     310         
     311        if (qName.equals(doc_tag_level_)) { 
     312        mode_ = atts.getValue("gs2:mode"); 
     313 
     314        pushOnStack(); // start new doc 
     315        current_node_ = qName; 
    315316         
    316         if (qName.equals(doc_tag_level_)) { 
    317             pushOnStack(); // start new doc 
    318             current_node_ = qName; 
    319              
    320             String node_id = atts.getValue("gs2:id"); 
    321             print(" " + qName + ": " + node_id ); 
    322             current_doc_.add(new Field("nodeID", node_id, Field.Store.YES, Field.Index.UN_TOKENIZED)); 
    323              
    324             current_doc_oid_ = atts.getValue("gs2:docOID"); 
    325             current_doc_.add(new Field("docOID", current_doc_oid_, Field.Store.YES, Field.Index.UN_TOKENIZED)); 
    326         } 
     317        String node_id = atts.getValue("gs2:id"); 
     318        print(" " + qName + ": " + node_id + " (" + mode_ + ")" ); 
     319        current_doc_.add(new Field("nodeID", node_id, Field.Store.YES, Field.Index.UN_TOKENIZED)); 
    327320         
    328         if (isIndexable(atts)) { 
    329             indexable_current_node_ = qName;     
    330         } 
    331         else { 
    332             indexable_current_node_ = ""; 
    333         } 
     321        current_doc_oid_ = atts.getValue("gs2:docOID"); 
     322        current_doc_.add(new Field("docOID", current_doc_oid_, Field.Store.YES, Field.Index.UN_TOKENIZED)); 
     323        } 
     324         
     325        if (isIndexable(atts)) { 
     326        indexable_current_node_ = qName;     
     327        } 
     328        else { 
     329        indexable_current_node_ = ""; 
    334330        } 
    335331    } 
     
    350346    public void endElement(String uri, String localName, String qName) throws SAXException  
    351347    { 
    352         if (mode_.equals("index")) { 
     348        if (mode_.equals("delete")) { 
     349        try { 
     350            deleteDocument(current_doc_oid_); 
     351        } 
     352        catch (java.io.IOException e) { 
     353            e.printStackTrace(); 
     354        } 
     355        } 
     356        else if (mode_.equals("index") || mode_.equals("reindex")) { 
    353357        if (qName.equals(indexable_current_node_)) 
    354358            { 
     
    367371        if (qName.equals(doc_tag_level_)) { 
    368372            try { 
     373            // perhaps this is more efficient if addDocument() 
     374            // used for "index" and updateDocument() for reindex 
    369375            writer_.updateDocument(new Term("docOID", current_doc_oid_), current_doc_, analyzer_); 
    370376            }  
     
    376382         
    377383        path_ = removePathLink(path_); 
    378         } 
    379         else if (mode_.equals("delete")) { 
    380         if (qName.equals("Delete")) { 
    381             try { 
    382             deleteDocument(current_contents_); 
    383             current_contents_ = ""; 
    384             } 
    385             catch (java.io.IOException e) { 
    386             e.printStackTrace(); 
    387             } 
    388         } 
    389384        } 
    390385    }