2010-10-25 7 views
3

J'essaie de supprimer un document en utilisant un terme dans l'index lucene. mais le code que j'ai fait ci-dessous ne fonctionne pas. Y at-il une suggestion de comment puis-je effectuer la fonction de suppression dans l'index lucene?comment supprimer des documents en utilisant terme dans lucene

public class DocumentDelete { 
public static void main(String[] args) { 
File indexDir = new File("C:/Users/Raden/Documents/lucene/LuceneHibernate/adi"); 
Term term = new Term(FIELD_PATH, "compatible"); 
Directory directory = FSDirectory.getDirectory(indexDir); 
IndexReader indexReader = IndexReader.open(directory); 
indexReader.deleteDocuments(term); 
indexReader.close();   
} 
} 
+0

Votre code semble bon, hmm ... –

+0

Le code a l'air bien. Peut-être que l'index a un fichier de verrouillage que vous devez supprimer. Si cela ne fonctionne pas, s'il vous plaît ajouter à votre question exactement comment vous voyez que la suppression échoue. –

+0

est ce terme correspondant même à tous les documents? Faites une recherche pour ce terme d'abord pour voir si vous obtenez des résultats. – bajafresh4life

Répondre

2
IndexReader indexReader = IndexReader.open(directory); // this one uses default readonly mode 

utiliser au lieu ceci:

IndexReader indexReader = IndexReader.open(directory, false); // this will open the index in edit mode and you can delete the index. . . 

Vous n'avez pas besoin outil supplémentaire pour la suppression de contenu de l'index. . .

Questions connexes