首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 开源软件 >

lucene即刻索引

2012-07-08 
lucene及时索引?? 今天在实现Lucene及时索引的时候,默认的方法有两种,1是删除重新索引,2是递增创建索引,想

lucene及时索引

?? 今天在实现Lucene及时索引的时候,默认的方法有两种,1是删除重新索引,2是递增创建索引,想要达到重复数据全部更新的方法有些不太符合实际,毕竟数据量还是太大;由于数据量大创建索引速度比较慢,1会影响索引的正常使用;2则不能达到全部更新的作用,为了尽量减小影响索引的正常使用,采用了文件夹的copy来解决,虽然是一个笨方法,但是解决这个问题我认为它也是好方法,能解决问题的方法就是好方法 哈哈...

?? 以下是代码:

?

调用:

?if (Directory.Exists(Common_Function.Function.GetConfigParam("indexPath1")))
??????????????????????????? {
??????????????????????????????? CopyFiles(Common_Function.Function.GetConfigParam("indexPath1"), Common_Function.Function.GetConfigParam("indexPath"));
??????????????????????????????? Directory.Delete(Common_Function.Function.GetConfigParam("indexPath1"), true);
??????????????????????????? }
??????????????????????????? CopyFiles(Common_Function.Function.GetConfigParam("indexPath"), Common_Function.Function.GetConfigParam("indexPath1"));

?

?

?

copy函数:

?

?public static void CopyFiles(string varFromDirectory, string varToDirectory)
??????? {
??????????? string m_eorrStr = string.Empty;????????
??????????
??????????? Directory.CreateDirectory(varToDirectory);??????????????
??????????
??????????? string[] directories = Directory.GetDirectories(varFromDirectory);//取文件夹下所有文件夹名,放入数组;
??????????? if (directories.Length > 0)
??????????? {
??????????????? foreach (string d in directories)
??????????????? {
??????????????????? CopyFiles(d, varToDirectory + d.Substring(d.LastIndexOf("\")));//递归拷贝文件和文件夹
??????????????? }
??????????? }

??????????? string[] files = Directory.GetFiles(varFromDirectory);//取文件夹下所有文件名,放入数组;
??????????? if (files.Length > 0)
??????????? {
??????????????? foreach (string s in files)
??????????????? {
??????????????????? File.Copy(s, varToDirectory + s.Substring(s.LastIndexOf("\")),true);
??????????????? }
??????????? }
??????? }

热点排行