<< 记录Presto数据查询引擎的配置过程 - 夜丶帝 - 博客园 | 首页 | Lucene 搜索性能优化 >>

Lucene-与索引库的交互 - 球球之家 - 博客频道 - CSDN.NET

 

内存索引库:数据是临时的、访问速度比文件索引库要快、索引库中的数据不能存放太多、内存索引库和文件索引库能结合在一起 
两个或者两个以上的索引库的合并: 
    如果是内存索引库,直接调用构造函数进行合并就可以了 内存索引库中。也可以调用addIndexesNoOptimize进行合并 
    如果是文件索引库,调用addIndexesNoOptimize进行合并,该方法可以接受多个索引库 

  1.     /** 
  2.      * 文件索引库和内存索引库的结合 
  3.      */  
  4.     @Test  
  5.     public void testRamAndFile() throws Exception{  
  6.         /** 
  7.          * 1、当应用程序启动的时候,把文件索引库的内容复制到内存库中 
  8.          * 2、让内存索引库和应用程序交互 
  9.          * 3、把内存索引库的内容同步到文件索引库 
  10.          */  
  11.         Directory fileDirectory = FSDirectory.open(new File("./indexDir"));  
  12.         Directory ramDirectory = new RAMDirectory(fileDirectory);  
  13.         IndexWriter ramIndexWriter = new IndexWriter(ramDirectory,LuceneUtils.analyzer,MaxFieldLength.LIMITED);  
  14.         IndexWriter fileIndexWriter = new IndexWriter(fileDirectory,LuceneUtils.analyzer,true,MaxFieldLength.LIMITED);  
  15.         /** 
  16.          * 在内存索引库中根据关键词查询 
  17.          */  
  18.         this.showData(ramDirectory);  
  19.           
  20.           
  21.         System.out.println("上面的是从内存索引库中查询出来的");  
  22.           
  23.         /** 
  24.          * 把一条信息插入到内存索引库 
  25.          */  
  26.         Article article = new Article();  
  27.         article.setId(1L);  
  28.         article.setTitle("lucene可以做搜索引擎");  
  29.         article.setContent("baidu,google都是很好的搜索引擎");  
  30.         ramIndexWriter.addDocument(DocumentUtils.article2Document(article));  
  31.         ramIndexWriter.close();  
  32.           
  33.         /* 
  34.          * 把内存索引库中的内容同步到文件索引库中 
  35.          */  
  36.         fileIndexWriter.addIndexesNoOptimize(ramDirectory);  
  37.         fileIndexWriter.close();  
  38.         this.showData(fileDirectory);  
  39.         System.out.println("上面的是从文件索引库中查询出来的");  

阅读全文……

标签 : ,



发表评论 发送引用通报