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

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

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 13/01/12
更新操作事实上就是先把记录删除,再追加一条新的记录即可,而IndexWriter为我们提供的UpdateDocuments感觉更向是在复制一个,所以不建议使用它,

而是手动删除和追加来完成这个update操作。

  1. [WebMethod]  
  2.          public int UpdateLuceneDocument(string primaryKey, string id, string name, string info, string categoryName, string propertyName, 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, new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_29), false, IndexWriter.MaxFieldLength.UNLIMITED);  
  10.                  Document doc = new Document();  
  11.                  doc.Add(new Field("PrimaryKey", primaryKey, Field.Store.YES, Field.Index.ANALYZED));  
  12.                  doc.Add(new Field("ID", id, Field.Store.YES, Field.Index.NO));  
  13.                  doc.Add(new Field("Name", name, Field.Store.YES, Field.Index.ANALYZED));  
  14.                  doc.Add(new Field("Info", info, Field.Store.YES, Field.Index.ANALYZED));  
  15.                  doc.Add(new Field("CategoryName", categoryName, Field.Store.YES, Field.Index.ANALYZED));  
  16.                  doc.Add(new Field("PropertyName", propertyName, Field.Store.YES, Field.Index.ANALYZED));  
  17.                  QueryParser parser = new QueryParser(Lucene.Net.Util.Version.LUCENE_29, "PrimaryKey"new StandardAnalyzer(Lucene.Net.Util.Version.LUCENE_29));  
  18.                  Query query = parser.Parse(primaryKey);  
  19.                  writer.DeleteDocuments(query);  
  20.                  writer.Commit();  
  21.                  writer.AddDocument(doc);  
  22.                  writer.Optimize();  
  23.                  writer.Close();  
  24.                  flag = 1;  
  25.              }  
  26.              catch (Exception)  
  27.              {  
  28.    
  29.                  throw;  
  30.              }  
  31.    
  32.              return flag;  
  33.          } 

网学推荐

免费论文

原创论文

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