当前位置: 网学 > 编程文档 > 其他类别 > 正文

Lucene中对document的CURD操作:为分布式全文检索设计

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/01/12
除记录(document):这个操作需要我们注意几点:

1、要删除的记录的依据应该具有唯一性,这样删除才有意义,并且这个字段在lucene存储时需要是ANALYZED,即可以被检索到

2、删除时的条件最好使用Query,而不要使用Term,我做过很多测试,结果证明Term条件总是不要使。

对于删除的代码如下:

  1. [WebMethod]  
  2.          public int DeleteLuceneDocument(string primaryKey, string module, string passKey)  
  3.          {  
  4.              int flag = 0;  
  5.              try 
  6.              {  
  7.                  dirInfo = Directory.CreateDirectory(this.GetIndexPath(ConfigurationManager.AppSettings[module]));  
  8.                  directory = LuceneIO.FSDirectory.Open(dirInfo);  
  9.                  IndexWriter writer = new IndexWriter(directory, standardAnalyzer, false, IndexWriter.MaxFieldLength.UNLIMITED);  
  10.                  QueryParser parser = new QueryParser(Lucene.Net.Util.Version.LUCENE_29, "PrimaryKey"new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_29));  
  11.                  Query query = parser.Parse(primaryKey);  
  12.                  writer.DeleteDocuments(query);  
  13.                  writer.Commit();  
  14.                  writer.Optimize();  
  15.                  writer.Close();  
  16.                  flag = 1;  
  17.              }  
  18.              catch (Exception)  
  19.              {  
  20.    
  21.                  throw;  
  22.              }  
  23.              return flag;  
  24.          } 

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号