List of usage examples for org.apache.lucene.index IndexWriterConfig setOpenMode
public IndexWriterConfig setOpenMode(OpenMode openMode)
From source file:org.kew.rmf.core.lucene.LuceneDataLoader.java
License:Open Source License
/** * Opens an IndexWriter, reusing or wiping an existing index according to the configuration. */// ww w. jav a2s . c o m private IndexWriter openIndex() throws IOException { IndexWriterConfig indexWriterConfig = new IndexWriterConfig(getLuceneVersion(), luceneAnalyzer); indexWriterConfig.setRAMBufferSizeMB(RAM_BUFFER_SIZE); // if (getConfig().isReuseIndex()) { // // Reuse the index if it exists, otherwise create a new one. // logger.debug("{}: Reusing existing index, if it exists", configName); // indexWriterConfig.setOpenMode(IndexWriterConfig.OpenMode.CREATE_OR_APPEND); // } // else { // Create a new index, overwriting any that already exists. logger.debug("{}: Overwriting existing index, if it exists", configName); indexWriterConfig.setOpenMode(IndexWriterConfig.OpenMode.CREATE); // } IndexWriter indexWriter; try { indexWriter = new IndexWriter(directory, indexWriterConfig); } catch (IOException e) { logger.warn("Exception while creating index, removing index directory and retrying", e); // Try deleting the index directory. File dir = directory.getDirectory(); if (dir.isDirectory() && dir.listFiles() != null) { logger.warn("{}: Wiping existing index directory {}", configName, dir); FileUtils.deleteDirectory(dir); } indexWriter = new IndexWriter(directory, indexWriterConfig); } return indexWriter; }
From source file:org.lahab.clucene.server.indexer.Indexer.java
License:Apache License
/** * Opens an index writer on the current directory * @throws CorruptIndexException// w w w. j a v a 2 s. c o m * @throws IOException * @throws ParametizerException */ public void open() throws CorruptIndexException, IOException, ParametizerException { StandardAnalyzer analyzer = new StandardAnalyzer(Version.LUCENE_36); IndexWriterConfig configWriter = new IndexWriterConfig(Version.LUCENE_36, analyzer); configWriter.setRAMBufferSizeMB(_params.getDouble("bufferSize")); configWriter.setMaxBufferedDocs(IndexWriterConfig.DISABLE_AUTO_FLUSH); configWriter.setOpenMode(IndexWriterConfig.OpenMode.CREATE); try { _index = new IndexWriter(_directory, configWriter); _nbLastCommit = _index.maxDoc(); _close = false; } catch (LockObtainFailedException e) { System.out.println("Lock is taken trying again"); _directory.clearLock("write.lock"); } }
From source file:org.languagetool.dev.index.Indexer.java
License:Open Source License
public Indexer(Directory dir, Language language) { try {/* ww w.j a v a2 s . co m*/ final Analyzer analyzer = getAnalyzer(language); final IndexWriterConfig writerConfig = getIndexWriterConfig(analyzer); writerConfig.setOpenMode(OpenMode.CREATE); writer = new IndexWriter(dir, writerConfig); sentenceTokenizer = language.getSentenceTokenizer(); } catch (Exception e) { throw new RuntimeException(e); } }
From source file:org.lukhnos.lucenestudy.Indexer.java
License:MIT License
/** * Create or open a document index/*w w w . ja va2 s. c om*/ * * @param indexRoot The parent directory inside which the index lives. * @param appendIfExists If true, the index will be opened for appending new documents. * @throws IOException */ public Indexer(String indexRoot, boolean appendIfExists) throws IOException { Path indexRootPath = Paths.get(indexRoot); Analyzer analyzer = getAnalyzer(); Directory mainIndexDir = FSDirectory.open(getMainIndexPath(indexRootPath)); IndexWriterConfig mainIndexWriterConfig = new IndexWriterConfig(analyzer); if (appendIfExists) { mainIndexWriterConfig.setOpenMode(IndexWriterConfig.OpenMode.CREATE_OR_APPEND); } else { mainIndexWriterConfig.setOpenMode(IndexWriterConfig.OpenMode.CREATE); } indexWriter = new IndexWriter(mainIndexDir, mainIndexWriterConfig); }
From source file:org.moxie.proxy.LuceneExecutor.java
License:Apache License
/** * Gets an index writer for the repository. The index will be created if it * does not already exist or if forceCreate is specified. * //from w ww.ja v a 2 s .co m * @param repository * @return an IndexWriter * @throws IOException */ private IndexWriter getIndexWriter(String repository) throws IOException { IndexWriter indexWriter = writers.get(repository); File indexFolder = new File(indexesFolder, repository); Directory directory = FSDirectory.open(indexFolder); if (indexWriter == null) { if (!indexFolder.exists()) { indexFolder.mkdirs(); } StandardAnalyzer analyzer = new StandardAnalyzer(LUCENE_VERSION); IndexWriterConfig config = new IndexWriterConfig(LUCENE_VERSION, analyzer); config.setOpenMode(OpenMode.CREATE_OR_APPEND); indexWriter = new IndexWriter(directory, config); writers.put(repository, indexWriter); } return indexWriter; }
From source file:org.ms123.common.data.lucene.LuceneServiceImpl.java
License:Open Source License
private IndexWriter createRealIndexWriter(String namespace) { try {/* w w w. j a v a 2 s . c o m*/ IndexWriterConfig.OpenMode mode = IndexWriterConfig.OpenMode.CREATE; File luceneDir = new File(System.getProperty("workspace") + "/lucene", namespace); if (!luceneDir.exists()) { luceneDir.mkdirs(); } else { mode = IndexWriterConfig.OpenMode.APPEND; } Directory dir = new SimpleFSDirectory(luceneDir); IndexWriterConfig iwc = new IndexWriterConfig(Version.LUCENE_33, new StandardAnalyzer(Version.LUCENE_33)); iwc.setOpenMode(mode); IndexWriter iw = new IndexWriter(dir, iwc); return iw; } catch (Exception e) { e.printStackTrace(); throw new RuntimeException("LuceneServiceImpl.createRealIndexWriter", e); } }
From source file:org.ms123.common.data.lucene.LuceneServiceImpl.java
License:Open Source License
public IndexWriter createTmpIndexWriter() { try {//from w w w . j a v a2 s . c o m IndexWriterConfig.OpenMode mode = IndexWriterConfig.OpenMode.CREATE; Directory dir = new RAMDirectory(); IndexWriterConfig iwc = new IndexWriterConfig(Version.LUCENE_33, new StandardAnalyzer(Version.LUCENE_33)); iwc.setOpenMode(mode); IndexWriter iw = new IndexWriter(dir, iwc); return iw; } catch (Exception e) { e.printStackTrace(); throw new RuntimeException("LuceneServiceImpl.createTmpIndexWriter", e); } }
From source file:org.niord.core.LuceneTest.java
License:Apache License
@Test public void testLucene() throws IOException, ParseException { // Something seems to have change in Lucene. In earlier versions (e.g. 4.6), you could // use the StandardAnalyzer and quoted phrase searches including stop words (e.g. "the") // would still work. See example below: // However, in the current version of Lucene, I can only get this scenario to work with // SimpleAnalyzer for the QueryParser :-( Directory directory = new RAMDirectory(); Analyzer analyzer = new StandardAnalyzer(); IndexWriterConfig iwc = new IndexWriterConfig(analyzer); iwc.setOpenMode(IndexWriterConfig.OpenMode.CREATE_OR_APPEND); IndexWriter writer = new IndexWriter(directory, iwc); Document doc = new Document(); FieldType ft = new FieldType(); ft.setIndexOptions(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS); ft.setTokenized(true);/*from w ww .ja v a 2s . c o m*/ ft.setStoreTermVectors(true); ft.setStoreTermVectorPositions(true); ft.freeze(); doc.add(new Field("message", "The quick brown fox jumps over the lazy dog", ft)); writer.addDocument(doc); writer.close(); IndexReader reader = DirectoryReader.open(directory); assertEquals(1, reader.numDocs()); analyzer = new SimpleAnalyzer(); QueryParser parser = new ComplexPhraseQueryParser("message", analyzer); parser.setDefaultOperator(QueryParser.OR_OPERATOR); parser.setAllowLeadingWildcard(true); // NB: Expensive! Query query = parser.parse("\"over the lazy\" +quick -goat bro*"); IndexSearcher searcher = new IndexSearcher(reader); TopDocs results = searcher.search(query, 10000); assertEquals(1, results.scoreDocs.length); reader.close(); }
From source file:org.niord.core.message.MessageLuceneIndex.java
License:Apache License
/** * Creates and returns a Lucene writer/* w w w. j a va 2 s .c om*/ */ private IndexWriter getNewWriter() throws IOException { IndexWriterConfig iwc = new IndexWriterConfig(getAnalyzer()); // Add new documents to an existing index: iwc.setOpenMode(OpenMode.CREATE_OR_APPEND); try { Directory dir = FSDirectory.open(indexFolder); return new IndexWriter(dir, iwc); } catch (IOException ex) { log.error("Failed to create message Lucene Index in folder " + indexFolder, ex); throw ex; } }
From source file:org.nuxeo.ecm.core.storage.sql.db.H2Fulltext.java
License:Apache License
private static IndexWriter getIndexWriter(String name, String path, String analyzer) throws SQLException { IndexWriter indexWriter = indexWriters.get(name); if (indexWriter != null) { return indexWriter; }// ww w . j a v a2 s.c o m synchronized (indexWriters) { indexWriter = indexWriters.get(name); if (indexWriter != null) { return indexWriter; } try { Directory dir = path == null ? new RAMDirectory() : FSDirectory.open(Paths.get(path)); Analyzer an = getAnalyzer(analyzer); IndexWriterConfig iwc = new IndexWriterConfig(an); iwc.setOpenMode(OpenMode.CREATE_OR_APPEND); indexWriter = new IndexWriter(dir, iwc); } catch (LockObtainFailedException e) { throw convertException("Cannot open fulltext index " + path, e); } catch (IOException e) { throw convertException(e); } indexWriters.put(name, indexWriter); return indexWriter; } }