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);
??????????????? }
??????????? }
??????? }