package org.neo4j.rdf.util;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import org.neo4j.graphdb.GraphDatabaseService;
import org.neo4j.rdf.fulltext.FulltextIndex;
import org.neo4j.rdf.fulltext.SimpleFulltextIndex;
import org.neo4j.rdf.store.CachingLuceneIndexService;
import org.neo4j.rdf.store.RdfStore;
import org.neo4j.rdf.store.VerboseQuadStore;
import org.neo4j.index.IndexService;
import org.neo4j.kernel.EmbeddedGraphDatabase;
public class VerifyFulltextIndexOffline
{
public static void main( String[] args ) throws IOException
{
final GraphDatabaseService graphDb = new EmbeddedGraphDatabase( args[ 0 ] );
final IndexService indexService =
new CachingLuceneIndexService( graphDb );
final FulltextIndex fulltextIndex = new SimpleFulltextIndex( graphDb,
new File( args[ 1 ] ) );
final RdfStore store = new VerboseQuadStore( graphDb, indexService,
null, fulltextIndex );
Runtime.getRuntime().addShutdownHook( new Thread()
{
@Override
public void run()
{
System.out.println( "Shutting down the store and Neo4j n' all" );
store.shutDown();
indexService.shutdown();
graphDb.shutdown();
System.out.println( "Everything shut down nicely" );
}
} );
System.out.print( "Enter query or just ENTER for the entire index: " );
String query = new BufferedReader(
new InputStreamReader( System.in ) ).readLine();
query = query == null || query.trim().length() == 0 ? null : query;
System.out.println( "Running verification for " +
( query == null ? "the entire index" : "query '" + query + "'" ) );
System.out.println( "You can tail -f the file to see progress, " +
"it's called something like verify-fulltextindex-123...." );
boolean everythingIsOk = store.verifyFulltextIndex( query );
if ( everythingIsOk )
{
System.out.println( "Index is OK" );
}
System.out.println( "Verification done, " +
"see file for detailed results" );
System.exit( 0 );
}
}