Example usage for org.apache.lucene.index IndexWriter IndexWriter

List of usage examples for org.apache.lucene.index IndexWriter IndexWriter

Introduction

In this page you can find the example usage for org.apache.lucene.index IndexWriter IndexWriter.

Prototype

public IndexWriter(Directory d, IndexWriterConfig conf) throws IOException 

Source Link

Document

Constructs a new IndexWriter per the settings given in conf.

Usage

From source file:com.gemstone.gemfire.cache.lucene.internal.repository.IndexRepositoryImplJUnitPerformanceTest.java

License:Apache License

@Test
public void testIndexRepository() throws Exception {

    doTest("IndexRepository", new TestCallbacks() {

        private Cache cache;
        private IndexRepositoryImpl repo;
        private IndexWriter writer;

        @Override/*from www . j  a  v  a2s.  c o  m*/
        public void addObject(String key, String text) throws Exception {
            repo.create(key, new TestObject(text));
        }

        @Override
        public void commit() throws Exception {
            repo.commit();
        }

        @Override
        public void init() throws Exception {
            cache = new CacheFactory().set("mcast-port", "0").set("log-level", "error").create();
            Region<String, File> fileRegion = cache.<String, File>createRegionFactory(RegionShortcut.REPLICATE)
                    .create("files");
            Region<ChunkKey, byte[]> chunkRegion = cache
                    .<ChunkKey, byte[]>createRegionFactory(RegionShortcut.REPLICATE).create("chunks");

            RegionDirectory dir = new RegionDirectory(fileRegion, chunkRegion);

            IndexWriterConfig config = new IndexWriterConfig(analyzer);
            writer = new IndexWriter(dir, config);
            String[] indexedFields = new String[] { "text" };
            HeterogenousLuceneSerializer mapper = new HeterogenousLuceneSerializer(indexedFields);
            repo = new IndexRepositoryImpl(fileRegion, writer, mapper);
        }

        @Override
        public void cleanup() throws IOException {
            writer.close();
            cache.close();
        }

        @Override
        public void waitForAsync() throws Exception {
            //do nothing
        }

        @Override
        public int query(Query query) throws IOException {
            TopEntriesCollector collector = new TopEntriesCollector();
            repo.query(query, 100, collector);
            return collector.size();
        }
    });
}

From source file:com.gemstone.gemfire.cache.lucene.internal.repository.IndexRepositoryImplJUnitPerformanceTest.java

License:Apache License

@Test
public void testLuceneWithRegionDirectory() throws Exception {
    doTest("RegionDirectory", new TestCallbacks() {

        private IndexWriter writer;
        private SearcherManager searcherManager;

        @Override/*from   ww w  .ja  va  2s  .com*/
        public void init() throws Exception {
            RegionDirectory dir = new RegionDirectory(new ConcurrentHashMap<String, File>(),
                    new ConcurrentHashMap<ChunkKey, byte[]>());
            IndexWriterConfig config = new IndexWriterConfig(analyzer);
            writer = new IndexWriter(dir, config);
            searcherManager = new SearcherManager(writer, true, null);
        }

        @Override
        public void addObject(String key, String text) throws Exception {
            Document doc = new Document();
            doc.add(new TextField("key", key, Store.YES));
            doc.add(new TextField("text", text, Store.NO));
            writer.addDocument(doc);
        }

        @Override
        public void commit() throws Exception {
            writer.commit();
            searcherManager.maybeRefresh();
        }

        @Override
        public void cleanup() throws Exception {
            writer.close();
        }

        @Override
        public void waitForAsync() throws Exception {
            //do nothing
        }

        @Override
        public int query(Query query) throws Exception {
            IndexSearcher searcher = searcherManager.acquire();
            try {
                return searcher.count(query);
            } finally {
                searcherManager.release(searcher);
            }
        }

    });

}

From source file:com.gemstone.gemfire.cache.lucene.internal.repository.IndexRepositoryImplJUnitPerformanceTest.java

License:Apache License

@Test
public void testLucene() throws Exception {
    doTest("Lucene", new TestCallbacks() {

        private IndexWriter writer;
        private SearcherManager searcherManager;

        @Override// ww w.  j  a  v a 2  s  .  c o  m
        public void init() throws Exception {
            RAMDirectory dir = new RAMDirectory();
            IndexWriterConfig config = new IndexWriterConfig(analyzer);
            writer = new IndexWriter(dir, config);
            searcherManager = new SearcherManager(writer, true, null);
        }

        @Override
        public void addObject(String key, String text) throws Exception {
            Document doc = new Document();
            doc.add(new TextField("key", key, Store.YES));
            doc.add(new TextField("text", text, Store.NO));
            writer.addDocument(doc);
        }

        @Override
        public void commit() throws Exception {
            writer.commit();
            searcherManager.maybeRefresh();
        }

        @Override
        public void cleanup() throws Exception {
            writer.close();
        }

        @Override
        public void waitForAsync() throws Exception {
            //do nothing
        }

        @Override
        public int query(Query query) throws Exception {
            IndexSearcher searcher = searcherManager.acquire();
            try {
                return searcher.count(query);
            } finally {
                searcherManager.release(searcher);
            }
        }

    });

}

From source file:com.gemstone.gemfire.cache.lucene.internal.repository.IndexRepositoryImplJUnitTest.java

License:Apache License

@Before
public void setUp() throws IOException {
    ConcurrentHashMap<String, File> fileRegion = new ConcurrentHashMap<String, File>();
    ConcurrentHashMap<ChunkKey, byte[]> chunkRegion = new ConcurrentHashMap<ChunkKey, byte[]>();
    RegionDirectory dir = new RegionDirectory(fileRegion, chunkRegion);
    IndexWriterConfig config = new IndexWriterConfig(analyzer);
    writer = new IndexWriter(dir, config);
    String[] indexedFields = new String[] { "s", "i", "l", "d", "f", "s2", "missing" };
    mapper = new HeterogenousLuceneSerializer(indexedFields);
    region = Mockito.mock(Region.class);
    Mockito.when(region.isDestroyed()).thenReturn(false);
    repo = new IndexRepositoryImpl(region, writer, mapper);
}

From source file:com.gemstone.gemfire.cache.lucene.internal.repository.IndexRepositoryImplPerformanceTest.java

License:Apache License

@Test
public void testIndexRepository() throws Exception {

    doTest("IndexRepository", new TestCallbacks() {

        private Cache cache;
        private IndexRepositoryImpl repo;
        private IndexWriter writer;

        @Override//from   w  ww  .j  a  va 2  s.c  o  m
        public void addObject(String key, String text) throws Exception {
            repo.create(key, new TestObject(text));
        }

        @Override
        public void commit() throws Exception {
            repo.commit();
        }

        @Override
        public void init() throws Exception {
            cache = new CacheFactory().set(MCAST_PORT, "0").set(LOG_LEVEL, "error").create();
            Region<String, File> fileRegion = cache.<String, File>createRegionFactory(RegionShortcut.REPLICATE)
                    .create("files");
            Region<ChunkKey, byte[]> chunkRegion = cache
                    .<ChunkKey, byte[]>createRegionFactory(RegionShortcut.REPLICATE).create("chunks");

            RegionDirectory dir = new RegionDirectory(fileRegion, chunkRegion,
                    new FileSystemStats(cache.getDistributedSystem(), "region-index"));
            final LuceneIndexStats stats = new LuceneIndexStats(cache.getDistributedSystem(), "region-index");

            IndexWriterConfig config = new IndexWriterConfig(analyzer);
            writer = new IndexWriter(dir, config);
            String[] indexedFields = new String[] { "text" };
            HeterogeneousLuceneSerializer mapper = new HeterogeneousLuceneSerializer(indexedFields);
            repo = new IndexRepositoryImpl(fileRegion, writer, mapper, stats);
        }

        @Override
        public void cleanup() throws IOException {
            writer.close();
            cache.close();
        }

        @Override
        public void waitForAsync() throws Exception {
            //do nothing
        }

        @Override
        public int query(Query query) throws IOException {
            TopEntriesCollector collector = new TopEntriesCollector();
            repo.query(query, 100, collector);
            return collector.size();
        }
    });
}

From source file:com.gemstone.gemfire.cache.lucene.internal.repository.IndexRepositoryImplPerformanceTest.java

License:Apache License

@Test
public void testLuceneWithRegionDirectory() throws Exception {
    doTest("RegionDirectory", new TestCallbacks() {

        public Cache cache;
        private IndexWriter writer;
        private SearcherManager searcherManager;

        @Override//  ww w  .  j  av a 2 s  .  c  om
        public void init() throws Exception {
            cache = new CacheFactory().set(MCAST_PORT, "0").set(LOG_LEVEL, "warning").create();
            final FileSystemStats stats = new FileSystemStats(cache.getDistributedSystem(), "stats");
            RegionDirectory dir = new RegionDirectory(new ConcurrentHashMap<String, File>(),
                    new ConcurrentHashMap<ChunkKey, byte[]>(), stats);
            IndexWriterConfig config = new IndexWriterConfig(analyzer);
            writer = new IndexWriter(dir, config);
            searcherManager = new SearcherManager(writer, true, true, null);
        }

        @Override
        public void addObject(String key, String text) throws Exception {
            Document doc = new Document();
            doc.add(new TextField("key", key, Store.YES));
            doc.add(new TextField("text", text, Store.NO));
            writer.addDocument(doc);
        }

        @Override
        public void commit() throws Exception {
            writer.commit();
            searcherManager.maybeRefresh();
        }

        @Override
        public void cleanup() throws Exception {
            writer.close();
            cache.close();
            ;
        }

        @Override
        public void waitForAsync() throws Exception {
            //do nothing
        }

        @Override
        public int query(Query query) throws Exception {
            IndexSearcher searcher = searcherManager.acquire();
            try {
                return searcher.count(query);
            } finally {
                searcherManager.release(searcher);
            }
        }

    });

}

From source file:com.gemstone.gemfire.cache.lucene.internal.repository.IndexRepositoryImplPerformanceTest.java

License:Apache License

@Test
public void testLucene() throws Exception {
    doTest("Lucene", new TestCallbacks() {

        private IndexWriter writer;
        private SearcherManager searcherManager;

        @Override/*from w w  w .jav  a2 s  . co m*/
        public void init() throws Exception {
            RAMDirectory dir = new RAMDirectory();
            IndexWriterConfig config = new IndexWriterConfig(analyzer);
            writer = new IndexWriter(dir, config);
            searcherManager = new SearcherManager(writer, true, true, null);
        }

        @Override
        public void addObject(String key, String text) throws Exception {
            Document doc = new Document();
            doc.add(new TextField("key", key, Store.YES));
            doc.add(new TextField("text", text, Store.NO));
            writer.addDocument(doc);
        }

        @Override
        public void commit() throws Exception {
            writer.commit();
            searcherManager.maybeRefresh();
        }

        @Override
        public void cleanup() throws Exception {
            writer.close();
        }

        @Override
        public void waitForAsync() throws Exception {
            //do nothing
        }

        @Override
        public int query(Query query) throws Exception {
            IndexSearcher searcher = searcherManager.acquire();
            try {
                return searcher.count(query);
            } finally {
                searcherManager.release(searcher);
            }
        }

    });

}

From source file:com.gitblit.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.
 * // www. j  a  va  2 s.  c om
 * @param repository
 * @return an IndexWriter
 * @throws IOException
 */
private IndexWriter getIndexWriter(String repository) throws IOException {
    IndexWriter indexWriter = writers.get(repository);
    File repositoryFolder = FileKey.resolve(new File(repositoriesFolder, repository), FS.DETECTED);
    File indexFolder = new File(repositoryFolder, LUCENE_DIR);
    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:com.gitblit.service.LuceneService.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.
 *
 * @param repository//ww w . j av  a  2s.co  m
 * @return an IndexWriter
 * @throws IOException
 */
private IndexWriter getIndexWriter(String repository) throws IOException {
    IndexWriter indexWriter = writers.get(repository);
    if (indexWriter == null) {
        File repositoryFolder = FileKey.resolve(new File(repositoriesFolder, repository), FS.DETECTED);
        LuceneRepoIndexStore indexStore = new LuceneRepoIndexStore(repositoryFolder, INDEX_VERSION);
        indexStore.create();
        Directory directory = FSDirectory.open(indexStore.getPath());
        StandardAnalyzer analyzer = new StandardAnalyzer();
        IndexWriterConfig config = new IndexWriterConfig(analyzer);
        config.setOpenMode(OpenMode.CREATE_OR_APPEND);
        indexWriter = new IndexWriter(directory, config);
        writers.put(repository, indexWriter);
    }
    return indexWriter;
}

From source file:com.gitblit.tickets.TicketIndexer.java

License:Apache License

private IndexWriter getWriter() throws IOException {
    if (writer == null) {
        indexStore.create();//  w w  w.jav  a2s.com

        Directory directory = FSDirectory.open(indexStore.getPath());
        StandardAnalyzer analyzer = new StandardAnalyzer();
        IndexWriterConfig config = new IndexWriterConfig(analyzer);
        config.setOpenMode(OpenMode.CREATE_OR_APPEND);
        writer = new IndexWriter(directory, config);
    }
    return writer;
}