コード例 #1
0
ファイル: GroupSearcher.cs プロジェクト: x1987624/SNS
        /// <summary>
        /// 更新索引
        /// </summary>
        /// <param name="GroupEntitys">待更新的群组集合</param>
        public void Update(IEnumerable <GroupEntity> groups)
        {
            IEnumerable <Document> docs     = GroupIndexDocument.Convert(groups);
            IEnumerable <string>   groupIds = groups.Select(n => n.GroupId.ToString());

            searchEngine.Update(docs, groupIds, GroupIndexDocument.GroupId);
        }
コード例 #2
0
ファイル: GroupSearcher.cs プロジェクト: x1987624/SNS
        /// <summary>
        /// 重建索引
        /// </summary>
        public void RebuildIndex()
        {
            //pageSize参数决定了每次批量取多少条数据进行索引。要注意的是,如果是分布式搜索,客户端会将这部分数据通过WCF传递给服务器端,而WCF默认的最大传输数据量是65535B,pageSize较大时这个设置显然是不够用的,WCF会报400错误;系统现在将最大传输量放宽了,但仍要注意一次不要传输过多,如遇异常,可适当调小pageSize的值
            int  pageSize     = 1000;
            int  pageIndex    = 1;
            long totalRecords = 0;
            bool isBeginning  = true;
            bool isEndding    = false;

            do
            {
                //分页获取群组列表
                PagingDataSet <GroupEntity> groups = groupService.GetsForAdmin(null, null, null, null, null, null, null, null, pageSize, pageIndex);
                totalRecords = groups.TotalRecords;

                isEndding = (pageSize * pageIndex < totalRecords) ? false : true;

                //重建索引
                List <GroupEntity> groupList = groups.ToList <GroupEntity>();

                IEnumerable <Document> docs = GroupIndexDocument.Convert(groupList);

                searchEngine.RebuildIndex(docs, isBeginning, isEndding);

                isBeginning = false;
                pageIndex++;
            }while (!isEndding);
        }
コード例 #3
0
ファイル: GroupSearcher.cs プロジェクト: x1987624/SNS
        /// <summary>
        /// 更新索引
        /// </summary>
        /// <param name="GroupEntity">待更新的群组</param>
        public void Update(GroupEntity group)
        {
            Document doc = GroupIndexDocument.Convert(group);

            searchEngine.Update(doc, group.GroupId.ToString(), GroupIndexDocument.GroupId);
        }
コード例 #4
0
ファイル: GroupSearcher.cs プロジェクト: x1987624/SNS
        /// <summary>
        /// 添加索引
        /// </summary>
        /// <param name="GroupEntitys">待添加的群组</param>
        public void Insert(IEnumerable <GroupEntity> groups)
        {
            IEnumerable <Document> docs = GroupIndexDocument.Convert(groups);

            searchEngine.Insert(docs);
        }