Ignore:
Timestamp:
2018-09-25T10:56:42+12:00 (6 years ago)
Author:
kjdon
Message:

greenstone now uses lucene 4.7.2, so upgrading this code to match

File:
1 edited

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone3/web/sites/localsite/collect/gberg/java/Indexer.java

    r20341 r32485  
    11import org.greenstone.gsdl3.util.GSEntityResolver;
     2import org.greenstone.LuceneWrapper4.GSLuceneUtil;
     3import org.greenstone.LuceneWrapper4.GSLuceneConstants;
    24
    35import org.xml.sax.Attributes;
     
    911import javax.xml.parsers.SAXParserFactory;
    1012
     13
     14import org.apache.lucene.analysis.Analyzer;
     15import org.apache.lucene.analysis.miscellaneous.LimitTokenCountAnalyzer;
     16import org.apache.lucene.index.IndexWriter;
     17import org.apache.lucene.index.IndexWriterConfig;
     18import org.apache.lucene.store.FSDirectory;
     19import org.apache.lucene.util.Version;
     20
    1121import org.apache.lucene.document.Document;
    1222import org.apache.lucene.document.Field;
     23import org.apache.lucene.document.StoredField;
     24import org.apache.lucene.document.TextField;
    1325//import org.apache.lucene.document.DateField;
    1426import org.apache.lucene.index.IndexWriter;
    1527import org.apache.lucene.analysis.standard.StandardAnalyzer;
     28import org.apache.lucene.util.Version;
    1629//import org.apache.lucene.analysis.SimpleAnalyzer;
    1730
     
    4053        SAXParserFactory sax_factory = SAXParserFactory.newInstance();
    4154        sax_parser = sax_factory.newSAXParser();
    42         writer = new IndexWriter(index_dir.getPath(), new StandardAnalyzer(), create);
     55        Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_47);
     56        Analyzer ltcAn = new LimitTokenCountAnalyzer(analyzer,Integer.MAX_VALUE);
     57
     58        IndexWriterConfig.OpenMode open_mode;
    4359        if (create) {
    44         writer.optimize();
    45         }
     60          open_mode = IndexWriterConfig.OpenMode.CREATE;
     61        } else {
     62          open_mode = IndexWriterConfig.OpenMode.APPEND;
     63        }
     64        IndexWriterConfig indexWriterConfig = new IndexWriterConfig(Version.LUCENE_47, ltcAn);
     65        indexWriterConfig.setOpenMode(open_mode);
     66
     67        FSDirectory index_fs_dir = FSDirectory.open(index_dir);
     68        writer = new IndexWriter(index_fs_dir, indexWriterConfig);
    4669
    4770    } catch (Exception e) {
     
    6891    public void finish() {
    6992    try {
    70         writer.optimize();
    7193        writer.close();
    7294    } catch (Exception e) {}
     
    104126        id += "/>";
    105127
     128        String value;
    106129        if (scope.equals(qName)) {
    107 
    108             current_doc.add(new Field("nodeID", this.file_id+"."+qName,
    109                       Field.Store.YES,Field.Index.NO));
     130          value = this.file_id+"."+qName;
    110131        } else {
    111         current_doc.add(new Field("nodeID", this.file_id+"."+scope+"."+qName+"."+node_id,
    112                       Field.Store.YES,Field.Index.NO));
    113         }
     132          value = this.file_id+"."+scope+"."+qName+"."+node_id;
     133        }
     134        current_doc.add(new StoredField("nodeID", value));
     135                 
    114136    }
    115137    }
    116138    public void endElement(String uri, String localName, String qName) throws SAXException {
    117139    if (XMLTagInfo.isIndexable(qName) && qName.equals(current_node)) {
    118         current_doc.add(new Field("content", current_contents,
    119                       Field.Store.NO,Field.Index.TOKENIZED));
     140      current_doc.add(new TextField("content", current_contents, Field.Store.NO));
    120141        try {
    121142        writer.addDocument(current_doc);
Note: See TracChangeset for help on using the changeset viewer.