@Override protected ModelNode invokeCommand(Cache<?, ?> cache, ModelNode operation, OperationContext context) { SearchManager searchManager = SecurityActions.getSearchManager(cache.getAdvancedCache()); if (searchManager != null) { searchManager.getMassIndexer().start(); } return null; } }
@Override protected void rebuildIndexes() throws Exception { Cache cache = caches.get(0); SearchManager searchManager = Search.getSearchManager(cache); CompletableFuture<Void> future = searchManager.getMassIndexer().startAsync(); future.get(); } }
protected void runMassIndexer() throws Exception { Cache cache = caches.get(0); SearchManager searchManager = Search.getSearchManager(cache); searchManager.getMassIndexer().start(); } }
protected void runMassIndexer() throws Exception { Cache cache = caches.get(0); SearchManager searchManager = Search.getSearchManager(cache); searchManager.getMassIndexer().start(); } }
protected void rebuildIndexes() throws Exception { Cache cache = caches.get(0); SearchManager searchManager = Search.getSearchManager(cache); searchManager.getMassIndexer().start(); }
@Test public void testListener() throws Exception { Cache<Integer, Transaction> cache = caches.get(0); int elements = 50; populate(elements); SearchManager searchManager = Search.getSearchManager(cache); CompletableFuture<Void> future = searchManager.getMassIndexer().startAsync(); final CountDownLatch endLatch = new CountDownLatch(1); future.whenComplete((v, t) -> { endLatch.countDown(); }); endLatch.await(); checkIndex(elements, Transaction.class); }
@Override protected void rebuildIndexes() throws Exception { for (Cache cache : caches) { Search.getSearchManager(cache).getMassIndexer().start(); } } }
@Test public void testMassIndexer() { for (int i = 0; i < NUM_ENTITIES; i++) { cache.put(i, new Person("name" + i, "blurb" + i, i)); } SearchManager searchManager = Search.getSearchManager(cache); assertEquals(NUM_ENTITIES, indexSize(cache)); searchManager.getMassIndexer().start(); assertEquals(NUM_ENTITIES, indexSize(cache)); cache.clear(); searchManager.getMassIndexer().start(); assertEquals(0, indexSize(cache)); }
public void testManualIndexing() throws Exception { caches.get(0).put("car A", new Car("ford", "blue", 400)); caches.get(0).put("car B", new Car("megane", "white", 300)); caches.get(0).put("car C", new Car("megane", "red", 500)); assertNumberOfCars(0, "megane"); assertNumberOfCars(0, "ford"); // rebuild index Search.getSearchManager(caches.get(0)).getMassIndexer().start(); assertNumberOfCars(2, "megane"); assertNumberOfCars(1, "ford"); }
@Test @BMRule(name = "Delay the purge of the index", targetClass = "org.hibernate.search.backend.impl.lucene.works.PurgeAllWorkExecutor", targetMethod = "performWork", action = "delay(500)" ) public void testMassIndexOnAsync() throws Exception { final Cache<Object, Object> cache = caches().get(0); for (int i = 0; i < NUM_ENTRIES; i++) { cache.getAdvancedCache().withFlags(Flag.SKIP_INDEXING).put(String.valueOf(i), new Transaction(i, "12345")); } for (Cache c : caches()) { Search.getSearchManager(c).getMassIndexer().start(); assertAllIndexed(c); } }
public void testPartiallyReindex() throws Exception { caches.get(0).getAdvancedCache().withFlags(Flag.SKIP_INDEXING).put(key("F1NUM"), new Car("megane", "white", 300)); Search.getSearchManager(cache(0)).getMassIndexer().reindex(key("F1NUM")).get(); verifyFindsCar(1, "megane"); caches.get(0).remove(key("F1NUM")); verifyFindsCar(0, "megane"); }
public void testPartiallyReindex() throws Exception { cache.getAdvancedCache().withFlags(Flag.SKIP_INDEXING).put(0, new Person("name" + 0, "blurb" + 0, 0)); verifyFindsPerson(0, "name" + 0); Search.getSearchManager(cache).getMassIndexer().reindex(0).get(); verifyFindsPerson(1, "name" + 0); cache.remove(0); verifyFindsPerson(0, "name" + 0); }
@Override protected void createCacheManagers() throws Throwable { ConfigurationBuilder cacheCfg = getDefaultClusteredCacheConfig(CACHE_MODE, TX_ENABLED); cacheCfg.clustering().remoteTimeout(120000) .indexing().index(Index.PRIMARY_OWNER) .addIndexedEntity(Transaction.class) .addProperty("default.directory_provider", DIRECTORY_PROVIDER.toString()) .addProperty("default.indexmanager", INDEX_MANAGER.toString()) .addProperty("default.indexwriter.merge_factor", MERGE_FACTOR) .addProperty("hibernate.search.default.worker.execution", WORKER_MODE.toString()) .addProperty("error_handler", "org.infinispan.query.helper.StaticTestingErrorHandler") .addProperty("lucene_version", "LUCENE_CURRENT"); List<Cache<Integer, Transaction>> caches = createClusteredCaches(2, cacheCfg); cache1 = caches.get(0); cache2 = caches.get(1); massIndexer = Search.getSearchManager(cache1).getMassIndexer(); }
public void testReindexing() throws Exception { Cache cache = cache(0).getAdvancedCache().withFlags(Flag.SKIP_INDEXING); SearchManager searchManager = Search.getSearchManager(cache); Query query = searchManager.buildQueryBuilderForClass(Car.class) .get() .keyword() .onField("make") .matching("ford") .createQuery(); cache.put("car1", new Car("ford", "white", 300)); cache.put("car2", new Car("ford", "blue", 300)); cache.put("car3", new Car("ford", "red", 300)); // ensure these were not indexed assertEquals(0, searchManager.getQuery(query, Car.class).getResultSize()); //reindex searchManager.getMassIndexer().start(); // check that the indexing is complete immediately assertEquals(3, searchManager.getQuery(query, Car.class).getResultSize()); } }