예제 #1
0
        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;
        }
예제 #2
0
        /// <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;
        }
예제 #3
0
        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;
        }