public static void Process(string SearchName)
        {
            /* determin which dataacquirer and which dataindexer to be instantiated with "Arg" argument */
            SearchElement search = Config.Searches[SearchName];

            Type AcquirerType = Type.GetType(search.DataAcquirer);
            Type IndexerType = Type.GetType(search.DataIndexer);

            dataAcquirer = (IDataAcquirer)Activator.CreateInstance(AcquirerType, new object[] { search });
            dataIndexer = (IDataIndexer)Activator.CreateInstance(IndexerType, new object[] { search });
            /* end */

            List<ISearchEntity> data = dataAcquirer.GetData();

            List<ISearchEntity> CreateEntities = new List<ISearchEntity>();
            List<ISearchEntity> DeleteEntities = new List<ISearchEntity>();

            foreach (ISearchEntity entity in data)
            {
                if (entity.ProcessType == EntityProcessType.insert)
                    AddCreateIndex(CreateEntities, entity);
                else if (entity.ProcessType == EntityProcessType.update)
                    AddCreateIndex(CreateEntities, entity);
                else if (entity.ProcessType == EntityProcessType.delete)
                    DeleteEntities.Add(entity);
                else
                    continue;
            }

            dataIndexer.CreateIndex(CreateEntities);
            dataIndexer.DeleteIndex(DeleteEntities);

            Console.Read();
        }
        public static void Process(string SearchName)
        {
            /* determin which dataacquirer and which dataindexer to be instantiated with "Arg" argument */
            SearchElement search = Config.Searches[SearchName];

            Type AcquirerType = Type.GetType(search.DataAcquirer);
            Type IndexerType  = Type.GetType(search.DataIndexer);


            dataAcquirer = (IDataAcquirer)Activator.CreateInstance(AcquirerType, new object[] { search });
            dataIndexer  = (IDataIndexer)Activator.CreateInstance(IndexerType, new object[] { search });
            /* end */

            List <ISearchEntity> data = dataAcquirer.GetData();

            List <ISearchEntity> CreateEntities = new List <ISearchEntity>();
            List <ISearchEntity> DeleteEntities = new List <ISearchEntity>();

            foreach (ISearchEntity entity in data)
            {
                if (entity.ProcessType == EntityProcessType.insert)
                {
                    AddCreateIndex(CreateEntities, entity);
                }
                else if (entity.ProcessType == EntityProcessType.update)
                {
                    AddCreateIndex(CreateEntities, entity);
                }
                else if (entity.ProcessType == EntityProcessType.delete)
                {
                    DeleteEntities.Add(entity);
                }
                else
                {
                    continue;
                }
            }

            dataIndexer.CreateIndex(CreateEntities);
            dataIndexer.DeleteIndex(DeleteEntities);

            Console.Read();
        }