Ceci est mon exemple de code:Comment stocker l'index lucene dans une base de données?
MysqlDataSource dataSource = new MysqlDataSource();
dataSource.setUser("root");
dataSource.setPassword("ncl");
dataSource.setDatabaseName("userdb");
dataSource.setEmulateLocators(true); //This is important because we are dealing with a blob type data field
try{
JdbcDirectory jdbcDir = new JdbcDirectory(dataSource, new MySQLDialect(), "tttable");
StandardAnalyzer analyzer = new StandardAnalyzer();
IndexWriter writer = new IndexWriter(jdbcDir, analyzer,false);
writer.optimize();
writer.close();
}catch(Exception e){
System.out.print(e);
}
Je suis coincé à cette ligne: IndexWriter writer = new IndexWriter(jdbcDir, analyzer,false);
Chaque fois que j'essaie d'exécuter ce code, je reçois l'exception suivante:
--- --- "org.apache.lucene.store.LockObtainFailedException: Le verrouillage a expiré: PhantomReadLock [write.lock/tttable]" ------------
Je ne trouve pas ce qui ne va pas avec le code. Il se peut que ce soit un problème de compatibilité de pot.
Je ne parviens pas à obtenir un objet IndexWriter.