List of usage examples for org.apache.lucene.index IndexWriter close
@Override public void close() throws IOException
From source file:de.ingrid.upgrader.service.ManifestIndexer.java
License:EUPL
private void index(final List<File> files) throws Exception { // create tmp index folder LOG.debug(" create tmp index folder"); final File tmp = new File(_targetFolder, IKeys.TEMP_FOLDER); if (!tmp.exists()) { tmp.mkdirs();//w w w.ja v a2 s.c om } // indexer LOG.debug(" initialize index writer"); final StandardAnalyzer analyzer = new StandardAnalyzer(); final IndexWriter writer = new IndexWriter(tmp, analyzer, true); // add files to index LOG.debug(" adding documents"); for (final File file : files) { final Document doc = fileToDocument(file); if (doc != null) { writer.addDocument(doc); } } // optimize LOG.debug(" optimizing and closing writer"); writer.optimize(); writer.close(); // close searcher final LuceneSearcher searcher = LuceneSearcher.getInstance(); if (searcher != null) { searcher.closeReader(); } // rename index LOG.debug(" renaming tmp index folder"); final File folder = new File(_targetFolder, IKeys.INDEX_FOLDER); delete(folder); tmp.renameTo(folder); // open new searcher if (searcher == null) { LuceneSearcher.createInstance(folder); } else { searcher.openReader(folder); } }
From source file:de.innovationgate.wgpublisher.lucene.LuceneManager.java
License:Open Source License
private void init() throws IOException, DocumentException { _indexer = new Indexer(); _timer = new Timer(); _timer.schedule(_indexer, 1000 * 60, _indexInterval); _indexConfig = new LuceneIndexConfiguration(_core, _dir); _indexDirectory = FSDirectory.open(_dir); if (_indexConfig.isNewConfiguration()) { IndexWriter writer = new IndexWriter(_indexDirectory, null, true, MaxFieldLength.LIMITED); writer.close(); }//from w w w. ja v a2 s . c om // Try to remove an existing lock if (IndexWriter.isLocked(_indexDirectory)) { LOG.warn("Lucene index directory was locked. Removing lock now"); IndexWriter.unlock(_indexDirectory); } }
From source file:de.innovationgate.wgpublisher.lucene.LuceneManager.java
License:Open Source License
public void optimizeIndex(Logger log) { synchronized (_indexWriteLock) { IndexWriter writer = null; try {/* w w w. ja va 2s .c o m*/ writer = new IndexWriter(_indexDirectory, null, MaxFieldLength.UNLIMITED); log.info("Optimizing lucene index ..."); long start = System.currentTimeMillis(); writer.optimize(); long end = System.currentTimeMillis(); log.info("Optimized lucene index in " + (end - start) + " ms."); } catch (Throwable e) { log.error("Exception performing index optimization.", e); } finally { if (writer != null) { try { writer.close(); writer = null; } catch (IOException e1) { log.error("Unable to close lucene index writer because of I/O exception", e1); } } } } }
From source file:de.jetsli.lumeo.util.LuceneHelperTest.java
License:Apache License
@Test public void testTermMatching() throws Exception { RAMDirectory dir = new RAMDirectory(); IndexWriter w = new IndexWriter(dir, new IndexWriterConfig(RawLucene.VERSION, new KeywordAnalyzer())); Document d = new Document(); FieldType ft = Mapping.getLongFieldType(true, true); d.add(new LongField("id", 1234, ft)); d.add(new LongField("tmp", 1111, ft)); w.addDocument(d);/* w w w . jav a 2 s. c o m*/ d = new Document(); d.add(new LongField("id", 1234, ft)); d.add(new LongField("tmp", 2222, ft)); w.updateDocument(getTerm("id", 1234), d); d = new Document(); d.add(new LongField("id", 0, ft)); w.addDocument(d); w.commit(); IndexReader reader = DirectoryReader.open(w, true); IndexSearcher searcher = new IndexSearcher(reader); BytesRef bytes = new BytesRef(); NumericUtils.longToPrefixCoded(1234, 0, bytes); TopDocs td = searcher.search(new TermQuery(new Term("id", bytes)), 10); assertEquals(1, td.totalHits); assertEquals(1234L, searcher.doc(td.scoreDocs[0].doc).getField("id").numericValue()); assertEquals(2222L, searcher.doc(td.scoreDocs[0].doc).getField("tmp").numericValue()); w.close(); }
From source file:de.ks.lucene.LuceneTaggingTest.java
License:Apache License
@Test public void testTags() throws Exception { IndexWriter writer = new IndexWriter(directory, new IndexWriterConfig(analyzer)); List<String> allTags = Arrays.asList("Bla Blubb", "Blubb", "Blubber Huhu", "Bla Huhu", "Haha"); for (String tag : allTags) { Document doc = new Document(); doc.add(new TextField("tags", tag, Field.Store.YES)); writer.addDocument(doc);//from ww w . j a va2 s . com } writer.close(); DirectoryReader directoryReader = DirectoryReader.open(directory); IndexSearcher searcher = new IndexSearcher(directoryReader); String term = "blubb"; TermQuery termQuery = new TermQuery(new Term("tags", term)); TopDocs search = searcher.search(termQuery, 50); log("TermQuery", searcher, search); FuzzyQuery fuzzyQuery = new FuzzyQuery(new Term("tags", term)); search = searcher.search(fuzzyQuery, 50); log("FuzzyQuery", searcher, search); BooleanQuery.Builder builder = new BooleanQuery.Builder(); builder.add(new TermQuery(new Term("tags", "blubb")), BooleanClause.Occur.SHOULD); builder.add(new TermQuery(new Term("tags", "bla")), BooleanClause.Occur.SHOULD); BooleanQuery query = builder.build(); search = searcher.search(query, 50); log("BooleanQuery", searcher, search); }
From source file:de.lmu.ifi.dbs.elki.application.lucene.SimpleTextLoader.java
License:Open Source License
@Override public void run() { try {// w ww . ja v a2s.c o m final Directory dir = FSDirectory.open(index); IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_36, new StandardAnalyzer(Version.LUCENE_36)); IndexWriter writer = new IndexWriter(dir, config); final URI suri = source.toURI(); for (File inf : source.listFiles()) { Document doc = new Document(); String id = suri.relativize(inf.toURI()).getPath(); String text = FileUtil.slurp(new FileInputStream(inf)); doc.add(new Field("id", id, Field.Store.YES, Field.Index.NOT_ANALYZED)); doc.add(new Field("contents", text, Field.Store.YES, Field.Index.ANALYZED)); writer.addDocument(doc); } writer.close(); } catch (IOException e) { throw new AbortException("I/O error in lucene.", e); } }