List of usage examples for org.apache.lucene.index IndexWriterConfig IndexWriterConfig
public IndexWriterConfig(Analyzer analyzer)
From source file:com.gemstone.gemfire.cache.lucene.internal.PartitionedRepositoryManager.java
License:Apache License
/** * Return the repository for a given user bucket *//*w ww. ja va 2 s . c o m*/ private IndexRepository getRepository(Integer bucketId) throws BucketNotFoundException { IndexRepository repo = indexRepositories.get(bucketId); //Remove the repository if it has been destroyed (due to rebalancing) if (repo != null && repo.isClosed()) { indexRepositories.remove(bucketId, repo); repo = null; } if (repo == null) { try { BucketRegion fileBucket = getMatchingBucket(fileRegion, bucketId); BucketRegion chunkBucket = getMatchingBucket(chunkRegion, bucketId); RegionDirectory dir = new RegionDirectory(fileBucket, chunkBucket); IndexWriterConfig config = new IndexWriterConfig(analyzer); IndexWriter writer = new IndexWriter(dir, config); repo = new IndexRepositoryImpl(fileBucket, writer, serializer); IndexRepository oldRepo = indexRepositories.putIfAbsent(bucketId, repo); if (oldRepo != null) { repo = oldRepo; } } catch (IOException e) { throw new InternalGemFireError("Unable to create index repository", e); } } return repo; }
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//w ww . j av a 2 s. c om 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 w ww . ja v a2 s. co m 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/*from w w w .j a va 2s . com*/ 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 ww w . j ava2 s . co 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 . ja va 2s . c o m 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/* w w w. ja v a2s.com*/ 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.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/*from w w w. j a v a 2s. c om*/ * @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();/*from w w w. j ava2 s. c om*/ 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; }