public bool DoSearch(FileFinder fd) { if (SubSearchPattern != null) { foreach (SearchPattern sp in SubSearchPattern) { sp.DoSearch(fd); } } else { //判断是否是日期的范围检索 int index = SearchValue.IndexOf(">"); if (index > 0) { Result.Content = fd.SearchBetween(SearchEnter, SearchValue.Substring(0, index).Trim(), SearchValue.Substring(index + 1).Trim()); } else { DateTime tm = DateTime.Now; Result.Content = fd.Search(SearchEnter, SearchValue, IsLeft); TimeSpan sp = DateTime.Now - tm; //Console.WriteLine(sp.ToString()); } } return true; }
/// <summary> /// 得到检索结果 /// </summary> /// <returns></returns> public Cpic.Cprs2010.Search.ResultInfo Search(Cpic.Cprs2010.Search.SearchPattern _searchPattern, FileFinder fd) { string ResultFile = string.Format(resultfile, CprsConfig.GetUserPath(_searchPattern.UserId, _searchPattern.GroupName), Enum.GetName(typeof(SearchDbType), _searchPattern.DbType), _searchPattern.SearchNo); SearchCommand = _searchPattern.Pattern; ResultInfo re = new ResultInfo(); re.SearchPattern = _searchPattern; Result rs; try { //初始化 Init(); //检索 DoSearch(fd); rs = GetResult(); // 创建文件夹 if (!System.IO.Directory.Exists(System.IO.Path.GetDirectoryName(ResultFile))) { System.IO.Directory.CreateDirectory(System.IO.Path.GetDirectoryName(ResultFile)); } else { if (System.IO.File.Exists(ResultFile)) { System.IO.File.Delete(ResultFile); } } using (System.IO.FileStream fsw = new System.IO.FileStream(ResultFile, System.IO.FileMode.Create, System.IO.FileAccess.Write)) { foreach (int i in rs.Content) { byte[] byhis = BitConverter.GetBytes(i); fsw.Write(byhis, 0, byhis.Length); } } re.HitCount = rs.Content.Count(); re.HitMsg = "(" + _searchPattern.SearchNo + ")" + SearchCommand + " <hits: " + re.HitCount + ">"; } catch (Exception ex) { re.HitCount =0; re.HitMsg = "(" + _searchPattern.SearchNo + ")" + SearchCommand + " <hits: " + re.HitCount + ">"; } return re; }
public bool Ini() { string ConfigFilePath = ""; string IndexDirectory = ""; switch (Type) { case SearchDbType.Cn: ConfigFilePath = System.Configuration.ConfigurationManager.AppSettings["CNConfigFile"].ToString(); IndexDirectory = System.Configuration.ConfigurationManager.AppSettings["CNIndPath"].ToString(); break; case SearchDbType.DocDB: ConfigFilePath = System.Configuration.ConfigurationManager.AppSettings["DocDBConfigFile"].ToString(); IndexDirectory = System.Configuration.ConfigurationManager.AppSettings["DocDBIndPath"].ToString(); break; case SearchDbType.Dwpi: ConfigFilePath = System.Configuration.ConfigurationManager.AppSettings["DwpiConfigFile"].ToString(); IndexDirectory = System.Configuration.ConfigurationManager.AppSettings["DwpiIndPath"].ToString(); break; } if (string.IsNullOrEmpty(ConfigFilePath) || string.IsNullOrEmpty(IndexDirectory)) { return false; } fd = new FileFinder(ConfigFilePath, IndexDirectory); //todo:nothing; return true; }