public static void ThreadFunc()
 {
     string[] imagePathArgs = Environment.GetCommandLineArgs();
     string configfile = System.AppDomain.CurrentDomain.BaseDirectory + @"\config.xml";
     if (imagePathArgs.Length >= 2)
     {
         configfile = imagePathArgs[1];
     }
     try
     {
         WriteToLog("ConfigFile:\t" + configfile);
     }
     catch (Exception)
     {
         //EventLog.WriteEntry(System.AppDomain.CurrentDomain.BaseDirectory + "\n" + e.StackTrace.ToString());
     }
     try
     {
         searcher = new SearchMaker(configfile);
     }
     catch (Exception ex)
     {
         WriteToLog(string.Format("Exception for open config file {0},{1}", configfile, ex.ToString()));
         //EventLog.WriteEntry(string.Format("Exception for open config file {0},{1}", configfile, ex.ToString()));
         throw;
     }
     //Console.WriteLine("START...");
     //Console.ReadKey();
     //this.timer.Enabled = true;
     //timeStart = DateTime.Now;
     WriteToLog("Searchd Start...");
     int port = 3322;
     if (searcher != null)
         port = searcher.GetNetworkPort();
     //EventLog.WriteEntry(string.Format("port={0}", port));
     //IPAddress ipaddr=new IPAddress(
     //IPHostEntry ipEntry = Dns.GetHostEntry(Dns.GetHostName());
     //listener = new TcpListener(ipEntry.AddressList[0], port);
     IPAddress ipAddr = IPAddress.Parse(searcher.Address);
     listener = new TcpListener(ipAddr, port);
     WriteToLog("IP="+searcher.Address+string.Format("\tport={0}", port));
     listener.Start();
     DoBeginAcceptTcpClient(listener);
 }
Example #2
0
        static void testSearch()
        {
            string path = @"d:\Indexer\config.xml";
            SearchMaker searcher = new SearchMaker(path);
            QueryInfo info = new QueryInfo();
            info.IndexNames = "Recource_LA_PCXXB";
            info.SearchWords = "东丽区2004年第十三批农用地转用";
            //info.FilterList.Add(new FilterCondition("","JSDW", "东丽"));
            //info.ExcludeList.Add(new ExcludeCondition("", "JSDW", "国家"));
            //info.RangeList.Add(new RangeCondition("","KGSJ","20000501","20090702"));
            SearchInfo si=new SearchInfo();
            //si.Query =info;
            //FileStream fs = new FileStream(@"F:\search.xml", FileMode.Open);

            //System.Xml.Serialization.XmlSerializer xsr = new XmlSerializer(typeof(SearchInfo));
            ////xsr.Serialize(fs,si);
            //si = (SearchInfo)xsr.Deserialize(fs);
            //fs.Close();
            //Console.WriteLine(si.ToString());
            DateTime start = DateTime.Now;
            Query query;
            Dictionary<string, int> statis;
            //List<SearchRecord> results = searcher.ExecuteFastSearch(info, out query, true);
            List<SearchRecord> results = searcher.ExecutePageSearch(info, out query, out statis,"",10,1, true);
            //Console.WriteLine(query.ToString());
            //SearchResult sr = new SearchResult();
            //sr.PageNum = 1;
            //sr.TotalPages = 1;
            //sr.Docs.AddRange(results);
            //System.Xml.XmlWriter writer = new System.Xml.XmlTextWriter(@"F:\result.xml", null);
            //FileStream fs = new FileStream(@"F:\result.xml", FileMode.Append);

            //System.Xml.Serialization.XmlSerializer xsr = new XmlSerializer(typeof(SearchResult));
            //xsr.Serialize(fs,sr);
            //fs.Close();
            //FileStream fs = new FileStream(@"F:\result.xml", FileMode.Open);
            
            //System.Xml.Serialization.XmlSerializer xsr = new XmlSerializer(typeof(SearchResult));
            //sr=(SearchResult)xsr.Deserialize(fs);
            //fs.Close();
            //Console.WriteLine(sr.ToString());

            //writer.Close();
            //TimeSpan span = DateTime.Now - start;
            //Console.WriteLine(string.Format("Spend {0} ", span.ToString()));
            ////ISUtils.SupportClass.Result.Output(result);
            int i = 0;
            foreach (SearchRecord doc in results)
            {
                i++;
                System.Xml.Serialization.XmlSerializer xsr = new XmlSerializer(typeof(SearchRecord));
                FileStream writer = new FileStream(@"F:\test.xml", FileMode.Create);

                xsr.Serialize(writer, doc);
                writer.Close();
                foreach (SearchField field in doc.Fields)
                {
                    string key = field.Name;
                    string value = field.Value;
                    Console.WriteLine(key + ":\t" + value);
                }
                Console.WriteLine("--------------------------------");
            }
            Console.WriteLine("count="+results.Count.ToString());
        }