Example #1
0
        /// <summary>
        /// 更新索引
        /// </summary>
        /// <param name="questions">待更新的日志集合</param>
        public void Update(IEnumerable <AskQuestion> questions)
        {
            IEnumerable <Document> docs        = AskIndexDocument.Convert(questions);
            IEnumerable <string>   questionIds = questions.Select(n => n.QuestionId.ToString());

            searchEngine.Update(docs, questionIds, AskIndexDocument.QuestionId);
        }
Example #2
0
        /// <summary>
        /// 重建索引
        /// </summary>
        public void RebuildIndex()
        {
            int  pageSize     = 1000;
            int  pageIndex    = 1;
            long totalRecords = 0;
            bool isBeginning  = true;
            bool isEndding    = false;

            do
            {
                PagingDataSet <AskQuestion> askQuestions = askService.GetQuestionsForAdmin(null, null, null, null, null, null, null, pageSize, pageIndex);
                totalRecords = askQuestions.TotalRecords;
                isEndding    = (pageSize * pageIndex < totalRecords) ? false : true;

                //重建索引
                List <AskQuestion>     askQuestionList = askQuestions.ToList <AskQuestion>();
                IEnumerable <Document> docs            = AskIndexDocument.Convert(askQuestionList);
                searchEngine.RebuildIndex(docs, isBeginning, isEndding);
                isBeginning = false;
                pageIndex++;
            } while (!isEndding);
        }
Example #3
0
        /// <summary>
        /// 添加索引
        /// </summary>
        /// <param name="askQuestions">待添加的问答</param>
        public void Insert(IEnumerable <AskQuestion> askQuestions)
        {
            IEnumerable <Document> docs = AskIndexDocument.Convert(askQuestions);

            searchEngine.Insert(docs);
        }