List of usage examples for org.apache.lucene.index IndexWriter IndexWriter
public IndexWriter(Directory d, IndexWriterConfig conf) throws IOException
conf
. From source file:com.andreig.jetty.Search.java
License:GNU General Public License
private void create_writer() throws IOException, CorruptIndexException, LockObtainFailedException { if (writer != null) return;//from ww w . jav a2 s. c o m IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_36, analyzer); writer = new IndexWriter(index, config); }
From source file:com.aperigeek.dropvault.web.service.IndexService.java
License:Open Source License
private IndexWriter getIndexWriter(String username, String password) throws IOException { Analyzer analyser = new StandardAnalyzer(Version.LUCENE_33); IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_33, analyser); IndexWriter writer = new IndexWriter(getDirectory(username, password), config); return writer; }
From source file:com.appeligo.amazon.ProgramIndexer.java
License:Apache License
public void run() { if (!indexLocation.exists()) { //create the index directory indexLocation.mkdirs();// ww w . j av a 2 s.c om } try { savedSearches.clear(); writer = new IndexWriter(indexLocation, analyzer); searcher = new IndexSearcher(indexLocation.getPath()); deleteExpiredPrograms(); writer.flush(); //reopen searcher so the deleted documents are not present close(searcher); searcher = new IndexSearcher(indexLocation.getPath()); addNewPrograms(); } catch (Exception e) { log.error("Error occurred during indexing.", e); } finally { savedSearches.clear(); close(searcher); searcher = null; close(writer); writer = null; close(conn); conn = null; } }
From source file:com.appeligo.ccdataindexer.Indexer.java
License:Apache License
private IndexWriter createIndexWriter() throws IOException { if (indexLocation == null) { return null; }/* ww w .j a v a 2 s . co m*/ File indexDir = new File(indexLocation); if (!indexDir.isDirectory()) { log.info("Creating Lucene index directory " + indexDir); indexDir.mkdirs(); } IndexWriter indexWriter = null; Configuration config = ConfigurationService.getConfiguration("system"); String[] stopWords = PorterStemAnalyzer.ENGLISH_STOP_WORDS; if (config != null) { stopWords = config.getStringArray("stopWords.word"); } log.info("Using stop words:" + Arrays.asList(stopWords)); while (indexWriter == null) { try { indexWriter = new IndexWriter(indexDir, new PorterStemAnalyzer(stopWords)); indexWriter.setMaxBufferedDocs(1000); indexWriter.setMaxMergeDocs(100); } catch (IOException e) { log.error("Failed to obtain lock for " + indexLocation + ". Trying again.", e); } } return indexWriter; }
From source file:com.appeligo.ccdataindexer.Indexer.java
License:Apache License
private IndexWriter createCompositeIndexWriter() throws IOException { if (compositeIndexLocation == null) { return null; }//from w ww. java2s.co m File indexDir = new File(compositeIndexLocation); if (!indexDir.isDirectory()) { log.info("Creating Lucene composite index directory " + indexDir); indexDir.mkdirs(); } IndexWriter indexWriter = null; /* NO STEMMING IN COMPOSITE INDEX... THROWS OFF SPELL CHECKER Configuration config = ConfigurationService.getConfiguration("system"); String[] stopWords = PorterStemAnalyzer.ENGLISH_STOP_WORDS; if (config != null) { stopWords = config.getStringArray("stopWords.word"); } log.info("Using stop words:" + Arrays.asList(stopWords)); */ while (indexWriter == null) { try { indexWriter = new IndexWriter(indexDir, new StandardAnalyzer()); indexWriter.setMaxBufferedDocs(1000); indexWriter.setMaxMergeDocs(100); } catch (IOException e) { log.error("Failed to obtain lock for " + compositeIndexLocation + ". Trying again.", e); } } return indexWriter; }
From source file:com.appeligo.lucene.IndexerQueue.java
License:Apache License
private IndexWriter createIndexWriter() throws IOException { File indexDir = new File(indexLocation); if (!indexDir.isDirectory()) { log.info("Creating Lucene index directory " + indexDir); indexDir.mkdirs();/*from w w w . jav a2s. c o m*/ } IndexWriter indexWriter = null; while (indexWriter == null) { try { indexWriter = new IndexWriter(indexDir, analyzer); } catch (IOException e) { log.error("Failed to obtain lock for " + indexLocation + ". Trying again.", e); } } return indexWriter; }
From source file:com.aurel.track.lucene.index.LuceneIndexer.java
License:Open Source License
/** * Initializes an IndexWriter.//www.j av a2 s .co m * It will be called from the following places: * - on system startup workItemWriter should be initialized! * created = false if no reindex at startup * created = true if reindex at startup * - before explicit reIndexing: created = true * - after reindexing: create = false; * During the adding/editing/deleting of index data the IndexWriter should be initialized with created = false! * @param created * @param index */ public static IndexWriter initWriter(boolean created, int index) { Directory indexDirectory = LuceneUtil.getIndexDirectory(index); if (indexDirectory == null) { LOGGER.error("Can not find or create the index directory for workitems"); return null; } Analyzer analyzer = LuceneUtil.getAnalyzer(); if (analyzer == null) { LOGGER.error("Analyzer is null"); return null; } IndexWriter indexWriter = getIndexWriter(index); if (indexWriter != null) { try { //release the lock indexWriter.close(); } catch (IOException e) { LOGGER.error("Closing the IndexWriter for index " + index + " failed with " + e.getMessage()); LOGGER.debug(ExceptionUtils.getStackTrace(e)); } } try { IndexWriterConfig indexWriterConfig = new IndexWriterConfig(analyzer); OpenMode openMode = null; if (created) { openMode = OpenMode.CREATE; } else { openMode = OpenMode.APPEND; } indexWriterConfig.setOpenMode(openMode); indexWriter = new IndexWriter(indexDirectory, indexWriterConfig); } catch (OverlappingFileLockException e) { if (LOGGER.isDebugEnabled()) { LOGGER.debug("OverlappingFileLockException " + e.getMessage()); LOGGER.debug(ExceptionUtils.getStackTrace(e)); } if (!created) { //try again this time with created = true try { //open for create IndexWriterConfig indexWriterConfig = new IndexWriterConfig(analyzer); indexWriterConfig.setOpenMode(OpenMode.CREATE); //indexWriter = new IndexWriter(indexDirectory, analyzer, true, IndexWriter.MaxFieldLength.UNLIMITED); indexWriter = new IndexWriter(indexDirectory, indexWriterConfig); //close it in order to reopen it for modifications indexWriter.close(); } catch (IOException e1) { LOGGER.error("Creating the IndexWriter for index " + index + " failed with " + e.getMessage()); LOGGER.debug(ExceptionUtils.getStackTrace(e)); } //try again this time with created = false try { IndexWriterConfig indexWriterConfig = new IndexWriterConfig(analyzer); indexWriterConfig.setOpenMode(OpenMode.APPEND); //indexWriter = new IndexWriter(indexDirectory, analyzer, false, IndexWriter.MaxFieldLength.UNLIMITED); indexWriter = new IndexWriter(indexDirectory, indexWriterConfig); } catch (IOException e1) { LOGGER.error("Creating the IndexWriter for index " + index + " failed with " + e.getMessage()); LOGGER.debug(ExceptionUtils.getStackTrace(e)); } } else { LOGGER.error("Creating the IndexWriter for index " + index + " failed with " + e.getMessage()); LOGGER.debug(ExceptionUtils.getStackTrace(e)); } } catch (IOException e) { //tried probably with created = false, when the index structure doesn't exist yet //it is the case when by startup the useLucene is active but reindexOnStartup not //we should try to open the writers with false (for modifications) in order to not to destroy the possible existing index //but when the index doesn't exists yet the opening of the writer with false fails. And this is the case now. if (!created) { //try again this time with created = true try { //open for create IndexWriterConfig indexWriterConfig = new IndexWriterConfig(analyzer); indexWriterConfig.setOpenMode(OpenMode.CREATE); //indexWriter = new IndexWriter(indexDirectory, analyzer, true, IndexWriter.MaxFieldLength.UNLIMITED); indexWriter = new IndexWriter(indexDirectory, indexWriterConfig); //close it in order to reopen it for modifications indexWriter.close(); } catch (IOException e1) { LOGGER.error("Creating the IndexWriter for index " + index + " failed with " + e.getMessage()); LOGGER.debug(ExceptionUtils.getStackTrace(e)); } //try again this time with created = false try { IndexWriterConfig indexWriterConfig = new IndexWriterConfig(analyzer); indexWriterConfig.setOpenMode(OpenMode.APPEND); //indexWriter = new IndexWriter(indexDirectory, analyzer, false, IndexWriter.MaxFieldLength.UNLIMITED); indexWriter = new IndexWriter(indexDirectory, indexWriterConfig); } catch (IOException e1) { LOGGER.error("Creating the IndexWriter for index " + index + " failed with " + e.getMessage()); LOGGER.debug(ExceptionUtils.getStackTrace(e)); } } else { LOGGER.error("Creating the IndexWriter for index " + index + " failed with " + e.getMessage()); LOGGER.debug(ExceptionUtils.getStackTrace(e)); } } switch (index) { case LuceneUtil.INDEXES.WORKITEM_INDEX: workItemWriter = indexWriter; break; case LuceneUtil.INDEXES.NOT_LOCALIZED_LIST_INDEX: notLocalizedLookupWriter = indexWriter; break; case LuceneUtil.INDEXES.LOCALIZED_LIST_INDEX: localizedLookupWriter = indexWriter; break; case LuceneUtil.INDEXES.EXTERNAL_LOOKUP_WRITER: externalLookupWriter = indexWriter; break; case LuceneUtil.INDEXES.ATTACHMENT_INDEX: attachmentWriter = indexWriter; break; case LuceneUtil.INDEXES.EXPENSE_INDEX: expenseWriter = indexWriter; break; case LuceneUtil.INDEXES.BUDGET_PLAN_INDEX: budgetPlanWriter = indexWriter; break; case LuceneUtil.INDEXES.LINK_INDEX: linkWriter = indexWriter; break; default: return null; } return indexWriter; }
From source file:com.b2international.index.compat.SingleDirectoryIndexImpl.java
License:Apache License
protected void initLucene(final File indexDirectory, final boolean clean) { try {/* w w w. j a v a 2s.c om*/ this.directory = Directories.openFile(indexDirectory.toPath()); final Analyzer analyzer = new ComponentTermAnalyzer(); final IndexWriterConfig config = new IndexWriterConfig(analyzer); config.setOpenMode(clean ? OpenMode.CREATE : OpenMode.CREATE_OR_APPEND); config.setIndexDeletionPolicy(new SnapshotDeletionPolicy(config.getIndexDeletionPolicy())); this.writer = new IndexWriter(directory, config); this.writer.commit(); // Create index if it didn't exist this.manager = new SearcherManager(directory, new SearchWarmerFactory()); } catch (final IOException e) { throw new RuntimeException(e.getMessage(), e); } }
From source file:com.b2international.index.lucene.NullIndexSearcher.java
License:Apache License
private static DirectoryReader createRamReader() throws IOException { final RAMDirectory directory = new RAMDirectory(); if (!DirectoryReader.indexExists(directory)) { final IndexWriterConfig conf = new IndexWriterConfig(new WhitespaceAnalyzer()); final IndexWriter writer = new IndexWriter(directory, conf); writer.commit();//from www .j av a2 s.co m writer.close(); } return DirectoryReader.open(directory); }
From source file:com.bah.lucene.BaseDirectoryTestSuite.java
License:Apache License
@Test public void testCreateIndex() throws IOException { long s = System.nanoTime(); IndexWriterConfig conf = new IndexWriterConfig(Version.LUCENE_43, new KeywordAnalyzer()); FSDirectory control = FSDirectory.open(fileControl); Directory dir = getControlDir(control, directory); // The serial merge scheduler can be useful for debugging. // conf.setMergeScheduler(new SerialMergeScheduler()); IndexWriter writer = new IndexWriter(dir, conf); int numDocs = 10000; DirectoryReader reader = null;//from ww w .j ava 2 s .co m for (int i = 0; i < 100; i++) { if (reader == null) { reader = DirectoryReader.open(writer, true); } else { DirectoryReader old = reader; reader = DirectoryReader.openIfChanged(old, writer, true); if (reader == null) { reader = old; } else { old.close(); } } assertEquals(i * numDocs, reader.numDocs()); IndexSearcher searcher = new IndexSearcher(reader); NumericRangeQuery<Integer> query = NumericRangeQuery.newIntRange("id", 42, 42, true, true); TopDocs topDocs = searcher.search(query, 10); assertEquals(i, topDocs.totalHits); addDocuments(writer, numDocs); } writer.close(false); reader.close(); long e = System.nanoTime(); System.out.println("Total time [" + (e - s) / 1000000.0 + " ms]"); }