예제 #1
0
        public void UpdateIndex(SueetieIndexTaskItem _taskItem)
        {
            DateTime startTime = DateTime.Now;

            try
            {
                _taskItem.BlogPosts     = AddSueetieSearchDocs(ProcessBlogPosts(_taskItem.TaskStartDateTime));
                _taskItem.WikiPages     = AddSueetieSearchDocs(ProcessSueetieWikiPages(_taskItem.TaskStartDateTime));
                _taskItem.ForumMessages = AddSueetieSearchDocs(ProcessSueetieForumMessages(_taskItem.TaskStartDateTime));
                _taskItem.MediaAlbums   = AddSueetieSearchDocs(ProcessSueetieMediaAlbums(_taskItem.TaskStartDateTime));
                _taskItem.MediaObjects  = AddSueetieSearchDocs(ProcessSueetieMediaObjects(_taskItem.TaskStartDateTime));
                _taskItem.ContentPages  = AddSueetieSearchDocs(ProcessSueetieContentPages(_taskItem.TaskStartDateTime));

                _taskItem.DocumentsIndexed = GetTotalIndexedCount();
                CommitAndCloseWriter();

                if (_taskItem.TaskTypeID == (int)SueetieTaskType.BuildSearchIndex)
                {
                    SueetieSearchDataProvider _provider = SueetieSearchDataProvider.LoadProvider();
                    _provider.UpdateAndEndTask(_taskItem);
                }
                DateTime endTime = DateTime.Now;
                SueetieLogs.LogSiteEntry(SiteLogType.General, SiteLogCategoryType.TasksMessage, "INDEX SUCCESSFUL: " +
                                         string.Format("Blog Posts: {0}, Wiki Pages: {1}, Forum Messages: {2}, Media Albums: {3}, Media Objects: {4}, Content Pages: {5}, Indexed Documents: {6}",
                                                       _taskItem.BlogPosts, _taskItem.WikiPages, _taskItem.ForumMessages, _taskItem.MediaAlbums, _taskItem.MediaObjects, _taskItem.ContentPages, _taskItem.DocumentsIndexed) +
                                         " - REBUILD INDEX DURATION: " + (endTime - startTime).TotalMilliseconds + " Milliseconds.");
            }
            catch (Exception e)
            {
                DateTime endTime = DateTime.Now;
                SueetieLogs.LogSearchException("SEARCH REBUILD INDEX ERROR: " + e.Message + "\n\nSTACKTRACE: " + e.StackTrace + " - REBUILD INDEX DURATION: " + (endTime - startTime).TotalMilliseconds + " Milliseconds.");
            }
        }
        public static SueetieSearchDataProvider LoadProvider()
        {
            _provider = SueetieCache.Current[providerKey] as SueetieSearchDataProvider;
            // Avoid claiming lock if providers are already loaded
            if (_provider == null)
            {
                lock (_lock)
                {
                    // Do this again to make sure _provider is still null
                    if (_provider == null)
                    {
                        SueetieConfiguration   sueetieConfig    = SueetieConfiguration.Get();
                        List <SueetieProvider> sueetieProviders = sueetieConfig.SueetieProviders;

                        SueetieProvider _p = sueetieProviders.Find(delegate(SueetieProvider sp) { return(sp.Name == "SueetieSearchSqlDataProvider"); });
                        _provider = Activator.CreateInstance(Type.GetType(_p.ProviderType), new object[] { _p.ConnectionString }) as SueetieSearchDataProvider;
                        SueetieCache.Current.InsertMax(providerKey, _provider, new CacheDependency(sueetieConfig.ConfigPath));
                    }
                }
            }
            return(_provider);
        }
예제 #3
0
        public static SueetieIndexTaskItem GetSueetieIndexTaskItem(int taskID)
        {
            SueetieSearchDataProvider _provider = SueetieSearchDataProvider.LoadProvider();

            return(_provider.GetSueetieIndexTaskItem(taskID));
        }
예제 #4
0
        private List <SueetieMediaObject> GetSueetieMediaObjectList(DateTime pubDate)
        {
            SueetieSearchDataProvider _provider = SueetieSearchDataProvider.LoadProvider();

            return(_provider.GetSueetieMediaObjectsToIndex(pubDate));
        }
예제 #5
0
        private List <SueetieForumMessage> GetSueetieForumMessageList(int contenttypeID, DateTime pubDate)
        {
            SueetieSearchDataProvider _provider = SueetieSearchDataProvider.LoadProvider();

            return(_provider.GetSueetieForumMessagesToIndex(contenttypeID, pubDate));
        }
예제 #6
0
        private List <SueetieBlogPost> GetSueetieBlogPostList(int contenttypeID, DateTime pubDate)
        {
            SueetieSearchDataProvider _provider = SueetieSearchDataProvider.LoadProvider();

            return(_provider.GetSueetieBlogPostsToIndex(contenttypeID, pubDate));
        }