Hi, all: I am Using version 5.5.4, and find can't delete a document via the IndexWriter.deleteDocuments(term) method.
Here is the test code: import org.apache.lucene.analysis.core.SimpleAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene.document.FieldType; import org.apache.lucene.index.*; import org.apache.lucene.queryparser.classic.ParseException; import org.apache.lucene.queryparser.classic.QueryParser; import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.Query; import org.apache.lucene.search.ScoreDoc; import org.apache.lucene.store.Directory; import org.apache.lucene.store.FSDirectory; import java.io.IOException; import java.nio.file.Paths; public class TestSearch { static SimpleAnalyzer analyzer = new SimpleAnalyzer(); public static void main(String[] argvs) throws IOException, ParseException { generateIndex("5836962b0293a47b09d345f1"); query("5836962b0293a47b09d345f1"); delete("5836962b0293a47b09d345f1"); query("5836962b0293a47b09d345f1"); } public static void generateIndex(String id) throws IOException { Directory directory = FSDirectory.open(Paths.get("/tmp/test/lucene")); IndexWriterConfig config = new IndexWriterConfig(analyzer); IndexWriter iwriter = new IndexWriter(directory, config); FieldType fieldType = new FieldType(); fieldType.setStored(true); fieldType.setIndexOptions(IndexOptions.DOCS_AND_FREQS_AND_POSITIONS_AND_OFFSETS); Field idField = new Field("_id", id, fieldType); Document doc = new Document(); doc.add(idField); iwriter.addDocument(doc); iwriter.close(); } public static void query(String id) throws ParseException, IOException { Query query = new QueryParser("_id", analyzer).parse(id); Directory directory = FSDirectory.open(Paths.get("/tmp/test/lucene")); IndexReader ireader = DirectoryReader.open(directory); IndexSearcher isearcher = new IndexSearcher(ireader); ScoreDoc[] scoreDoc = isearcher.search(query, 100).scoreDocs; for(ScoreDoc scdoc: scoreDoc){ Document doc = isearcher.doc(scdoc.doc); System.out.println(doc.get("_id")); } } public static void delete(String id){ try { Directory directory = FSDirectory.open(Paths.get("/tmp/test/lucene")); IndexWriterConfig config = new IndexWriterConfig(analyzer); IndexWriter iwriter = new IndexWriter(directory, config); Term term = new Term("_id", id); iwriter.deleteDocuments(term); iwriter.commit(); iwriter.close(); }catch (IOException e){ e.printStackTrace(); } } } -- ======================================== best regards & a nice day Zhao Ximing --------------------------------------------------------------------- To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org For additional commands, e-mail: java-user-h...@lucene.apache.org