lucene NRTʵʱË÷Òýѧϰ
? ? ?lucene¸ß¼¶°æ±¾ÖÐÌí¼ÓÁ˶ÔʵʱË÷Òý²éѯµÄ¹¦ÄÜ£¬ÒòΪÔÚÕæÊµµÄÓ¦Óó¡¾°Öо³£»á¶ÔIndexWriter×öд£¬¸üлòÕßɾ³ý²Ù×÷Ö®ºóÂíÉÏÈ¥×ö²éѯ²Ù×÷£¬Ö®Ç°½ÏµÍµÄ°æ±¾ÖбØÒªÖ´ÐÐcommit²Ù×÷ºó½«Ë÷Òý¶¼Ð´µ½´ÅÅÌÖ®ºó²ÅÄÜ´ÓIndexSearcher ¶ÔÏóÉϵIJéѯ²ÅÄܸüУ¬ÀÏ·½Ê½±È½ÏºÄʱ¡£
?
? ? ? ʵÀý´úÂëÈçÏ£º
public class LuceneNrtTest extends TestCase {public static Analyzer analyzer;static {analyzer = new StandardAnalyzer(Version.LUCENE_31);}public void testNearRealTime() throws Exception {Directory dir = new RAMDirectory();IndexWriterConfig iwc = new IndexWriterConfig(Version.LUCENE_31,analyzer);iwc.setOpenMode(OpenMode.CREATE_OR_APPEND);IndexWriter writer = new IndexWriter(dir, iwc);for (int i = 0; i < 10; i++) {Document doc = new Document();doc.add(new Field("id", "" + i, Field.Store.NO,Field.Index.NOT_ANALYZED_NO_NORMS));doc.add(new Field("text", "aaa", Field.Store.NO,Field.Index.ANALYZED));writer.addDocument(doc);}// ²âÊÔÊÇ·ñÄܲéѯµ½¸Õ¸Õ²åÈëµÄÊý¾ÝIndexReader reader = IndexReader.open(writer, false);IndexSearcher searcher = new IndexSearcher(reader);Query query = new TermQuery(new Term("text", "aaa"));TopDocs docs = searcher.search(query, 1);assertEquals(10, docs.totalHits);// ²âÊÔÊÇ·ñÄÜɾ³ýÒ»ÌõÊý¾Ýwriter.deleteDocuments(new Term("id", "7"));// ÔÙ¼ÓÒ»ÌõDocument doc = new Document();doc.add(new Field("id", "11", Field.Store.NO,Field.Index.NOT_ANALYZED_NO_NORMS));doc.add(new Field("text", "bbb", Field.Store.NO, Field.Index.ANALYZED));writer.addDocument(doc);IndexReader newReader = IndexReader.open(writer, true);assertFalse(reader == newReader);reader.close();searcher = new IndexSearcher(newReader);TopDocs hits = searcher.search(query, 10);assertEquals(9, hits.totalHits);query = new TermQuery(new Term("text", "bbb"));hits = searcher.search(query, 1);assertEquals(1, hits.totalHits);newReader.close();writer.close();}}
?´úÂëËùÒÀÀµµÄlucene°æ±¾ÊÇ£º
<dependency><groupId>org.apache.lucene</groupId><artifactId>lucene-core</artifactId><version>3.5.0</version></dependency>
?
ÓÐÒ»µãҪ˵Ã÷µÄÊÇÕâÀïËù˵µÄʵʱË÷Òý£¬²¢²»µÈͬÓÚÕýµÄʵʱË÷Òý£¬Ö»²»¹ý½Ó½üʵʱË÷Òý£¬¿ÉÄܸüÐÂÍêÌõÊý¾Ý£¬ÂíÉÏÈ¥Ö´ÐÐsearch²Ù×÷£¬½á¹û¿ÉÄܲ»»áÏÔʾ³öÀ´£¬ÒªÉÔ΢µÈ´ýÒ»µãʱ¼ä¾ÍÄܲéѯµ½×îнá¹ûÁË£¨Ò²ÐíÊÇÊ®¼¸ºÁÃë°É£©£¬ÕâµãºÍÊý¾Ý¿â²Ù×÷Óе㲻һÑù£¬²»¹ý×ܵÄÀ´ËµÒ²·Ç³£ºÃÓÃÁË¡£
?