/* * Hibernate Search, full-text search for your domain model * * License: GNU Lesser General Public License (LGPL), version 2.1 or later * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>. */ package org.hibernate.search.engineperformance; import java.io.IOException; import org.hibernate.search.engineperformance.setuputilities.SearchIntegratorCreation; import org.hibernate.search.spi.SearchIntegrator; import org.openjdk.jmh.annotations.Param; import org.openjdk.jmh.annotations.Scope; import org.openjdk.jmh.annotations.Setup; import org.openjdk.jmh.annotations.State; import org.openjdk.jmh.annotations.TearDown; @State(Scope.Benchmark) public class QueryEngineHolder extends BaseIndexSetup { public volatile SearchIntegrator si; @Param( { "ram", "fs", "fs-nrt" } ) private String directorytype; @Param( { "async", "shared" } ) private String readerStrategy; @Param( { "100", "5000000" } ) private int indexSize; @Param( { "100" } ) private int maxResults; @Setup public void initializeState() throws IOException { si = SearchIntegratorCreation.createIntegrator( directorytype, readerStrategy, pickIndexStorageDirectory() ); SearchIntegratorCreation.preindexEntities( si, indexSize ); } public int getExpectedIndexSize() { return indexSize; } public int getMaxResults() { return maxResults; } public boolean isQuerySync() { return ! "async".equals( readerStrategy ); } @TearDown public void shutdownIndexingEngine() throws IOException { if ( si != null ) { si.close(); } super.cleanup(); } }