惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

aimingoo的专栏
aimingoo的专栏
G
Google Developers Blog
B
Blog RSS Feed
A
About on SuperTechFans
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
V
V2EX
Stack Overflow Blog
Stack Overflow Blog
C
Check Point Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Engineering at Meta
Engineering at Meta
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园 - 司徒正美
D
Docker
F
Fortinet All Blogs
Hugging Face - Blog
Hugging Face - Blog
Last Week in AI
Last Week in AI
H
Help Net Security
WordPress大学
WordPress大学
MyScale Blog
MyScale Blog
博客园 - Franky
人人都是产品经理
人人都是产品经理
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Blog — PlanetScale
Blog — PlanetScale
L
LangChain Blog

博客园 - yuejianjun

搜索结果点击情况 进行加权 java httpURL连接远程服务器并返回数据(httpurlconnection)(转) 实体类 topN topN 堆排序 (int 类型) 过滤词 Lucene的评分(score) 位图求交集 位运算包含功能 页面抓取匹配时,万恶的 , , 要先替换掉为空,出现匹配有问题,都是这个引起的 探索推荐引擎内部的秘密,第 1 部分: 推荐引擎初探 深度用户行为 多维度深入分析笔记 lucene 搜索学习笔记 - OK 中文自动摘要提取 常用的vs编码 快捷键 Lucene中的堆(Heap)[ScorerDocQueue,TopScoreDocCollector] lucene 大数据量 快速 排序 l u c e n e 创 建 修 改 删 除 索 引 集中、分布式搜索引擎的4种设计方案 lucene fenlei ThreadPool 使用
T a s k 搜 索 ( L u c e n e )
yuejianjun · 2011-11-04 · via 博客园 - yuejianjun

2011-11-04 17:33  yuejianjun  阅读(213)  评论()    收藏  举报

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
using Comm;
using Entity;

namespace Service
{
   public class SearchTask
    {
        public static ReturnItem TaskSearchModuleSecond(QueryItemEntity queryItemEntity)
        {
            string[] indexPath = Profile.IndexModuleSecondPath();
            Task<ReturnItem> parentTask = new Task<ReturnItem>(() =>
            {
                IList<Task<ReturnItem>> taskArray = new List<Task<ReturnItem>>();

                for (int i = 0; i < indexPath.Length; i++)
                {
                    string path = indexPath[i];

                    Task<ReturnItem> childTask = new Task<ReturnItem>
                         (() =>
                         {
                             ReturnItem result = SearchService(queryItemEntity, path);
                             return result;
                         }, TaskCreationOptions.AttachedToParent);
                    taskArray.Add(childTask);
                }

                foreach (Task<ReturnItem> t in taskArray)
                    t.Start();

                ReturnItem listResult = new ReturnItem();

                foreach (Task<ReturnItem> t in taskArray)
                {
                    listResult.TotalHits += t.Result.TotalHits;
                    if (listResult.ReturnList == null)
                    {
                        listResult.ReturnList = t.Result.ReturnList;
                    }
                    else if (t.Result.ReturnList != null)
                    {
                        listResult.ReturnList.AddRange(t.Result.ReturnList); 
                    }
                } 
                return listResult;
            });
            parentTask.Start();
            parentTask.Wait();
            ReturnItem list = parentTask.Result;
            list.ReturnList.Sort((IndexEntity x, IndexEntity y) => y.Rank.CompareTo(x.Rank));
            return list;
        }
        public static ReturnItem SearchService(QueryItemEntity queryItemEntity, string path)
        {
          ReturnItem r=  SearchBase.MainSearch(queryItemEntity,false ,true ,path );
          return r;
        }
    }
}