12,162
社区成员
发帖
与我相关
我的任务
分享
/// <summary>
/// 获取搜索结果
/// </summary>
/// <param name="keywords">关键字</param>
/// <param name="factoryId">厂商</param>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <returns></returns>
[OperationContract]
string GetSaerchResult(string keywords, long factoryId, int pageIndex, int pageSize);
public string GetSaerchResult(string keywords, long factoryId, int pageIndex, int pageSize)
{
var keys = keywords.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
Dictionary<string, List<ProductSaerch>> results = new Dictionary<string, List<ProductSaerch>>();
List<ComputeTask> tasks = new List<ComputeTask>();
ComputeCallClient client = new ComputeCallClient();
foreach (var item in keys)
{
//判断是否缓存是否存在关键字,如果不存在,则需要发送到搜索引擎服务去搜索
if (CacheUtil.InitCache.Contains("SaerchEngine." + item))
{
this.FilterFactoryResult(factoryId, results, item);
}
else
{
SaerchEngineParameter para = new SaerchEngineParameter();
para.SaerchEngineType = 3;
para.SearchKeyword = item;
ComputeTask task = new ComputeTask();
task.ExecutorType = "Linkage.KYY.WindowsService.Business.SaerchEngineService,Linkage.KYY.WindowsService.Business";
task.Paras = Newtonsoft.Json.JsonConvert.SerializeObject(para);
client.SubmitTask(task);
tasks.Add(task);
}
}
public string GetSaerchResult(string keywords, long factoryId, int pageIndex, int pageSize)
{
RemoteAccess rpc = null;
ICacheService service = null;
string obj = "";
try
{
rpc = new RemoteAccess();
service = rpc.CreateObject<ICacheService>();
obj = service.GetSaerchResult(keywords, factoryId, pageIndex, pageSize);
}
catch (Exception e)
{
throw new Exception(e.Message);
}
finally
{
rpc.CloseObject<ICacheService>(service);
}
return obj;
}