/// <summary> /// 更新索引 /// </summary> /// <param name="questionId"></param> public void SetQuestionFullSearch(int questionId) { try { var selectSql = @"SELECT q.QuestionId,q.Title,q.Question,q.Tags,q.NewAnswer, q.isThematic,q.IsDelete,q.answerCount, q.QuestionTime,q.AnswerId,q.Integration,q.SortId,q.LastAnswerTime,u.Realname, u1.Realname AS answerName, q.LastAnswerUserId FROM Int_Question q LEFT JOIN Sys_Users u ON q.UserId=u.UserId LEFT JOIN sys_users u1 ON q.LastAnswerUserId=u1.UserId WHERE q.QuestionId=" + questionId; FullTextIndexQuestion question = _dataAccess.FetchListBySql <FullTextIndexQuestion>(selectSql).First(); if (question.IsThematic == 1) { return; } if (question.IsDelete == 1) { FullTextSearchProvider.DelIndex <FullTextIndexQuestion>("intquestion", questionId); } else { FullTextSearchProvider.Index(question, "intquestion", questionId, true); } } catch { } }
internal static void DeleteCourseIndex(int courseId) { try { FullTextSearchProvider.DelIndex <FullTextSearchCourse>("course", courseId); } catch { } }
/// <summary> /// 批量删除 /// </summary> /// <param name="questionIds"></param> /// <returns></returns> public int DeleteQuestions(IEnumerable <int> questionIds) { var sortIds = _dataAccess.FetchListBySql <int>("SELECT SortId FROM Int_Question WHERE QuestionId IN (" + questionIds.GetString() + ")"); var allsorts = BusinessCache.SingleTableCache.Instance.GetCache <QuestionSort>(); var updateCountSql = new StringBuilder(); foreach (var sortId in sortIds) { if (sortId == 0) { continue; } QuestionSort sort = allsorts.First(p => p.SortId == sortId); while (sort.ParentId != 0) { sort = allsorts.First(p => p.SortId == sort.ParentId); } updateCountSql.AppendLine("UPDATE Int_QuestionSort SET QuestionCount=QuestionCount-1 WHERE SortId =" + sort.SortId); } if (updateCountSql.Length > 0) { _dataAccess.ExecuteSql(updateCountSql.ToString()); } //删除索引 foreach (var questionId in questionIds) { FullTextSearchProvider.DelIndex <FullTextIndexQuestion>("intquestion", questionId); } return(_dataAccess.UpdateField("Int_Question", "IsDelete", "1", "QuestionId IN (" + questionIds.GetString() + ")")); }