Lucene.net感觉非常弱呀。。。怪异问题,用过的人进来帮忙看看

datahandler2 2015-07-29 10:32:39
这几天公司网站搜索栏目重写,改用Lucene.net...
但部署上去感觉噩耗呀,CPU经常占用到50%以上。。。。。整个CPU加上其他进程经常90%~100%
尝试的将方法一:

public static List<CarSellBasicModel> GetDataSource2(CarSellSearchCondition searchCondition)
{
var carSellBasicModels = new List<CarSellBasicModel>();

var fsDir = FSDirectory.Open(lucenePath);

using (var searcher = new IndexSearcher(fsDir, true))
{
var query = GetQuery(searchCondition);
if (query != null)
carSellBasicModels = GetCarSellList(searcher, query, searchCondition);
}
fsDir.Dispose();
return carSellBasicModels;
}


更改如下:

public static List<CarSellBasicModel> GetDataSource(CarSellSearchCondition searchCondition)
{
var carSellBasicModels = new List<CarSellBasicModel>();

try
{
IndexSearcher searcher = null;
var cacheKey = "___Sys_IndexSearcher";
if (!CacheHelper.TryGetValue(cacheKey, out searcher))
{
var fsDir = FSDirectory.Open(lucenePath);
searcher = new IndexSearcher(fsDir, true);
if (searcher != null)
CacheHelper.Set(cacheKey, searcher);
}

var query = GetQuery(searchCondition);
if (query != null)
carSellBasicModels = GetCarSellList(searcher, query, searchCondition);
}
catch (Exception ex)
{
LogHelper.Write(ex.ToString());
throw ex;
}

return carSellBasicModels;
}


发现CPU 有下降一些,但大量异常日志被LogHelper给记录下来,基本都是:
Message:System.ArgumentOutOfRangeException: The added or subtracted value results in an un-representable DateTime.
Parameter name: months
at System.DateTime.AddMonths(Int32 months)
at System.DateTime.AddYears(Int32 value)
=================================================
暂时摸不到头脑怎么处理这个异常,另外如何优化,请高人指点一二。。。
...全文
182 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
datahandler2 2015-07-30
  • 打赏
  • 举报
回复
都没其他人?
  • 打赏
  • 举报
回复
虽然知道,但没去研究过,这里应该有人研究过的
datahandler2 2015-07-29
  • 打赏
  • 举报
回复
都在睡觉?
内容概要:本文详细介绍了MySQL中InnoDB存储引擎的逻辑存储结构及其表分区技术。InnoDB的逻辑存储单元由高到低依次为表空间、段、区、页和行,其中表空间包括系统表空间、独立表空间、通用表空间、Undo表空间和临时表空间,每种表空间具有不同的用途和管理方式。文章进一步讲解了表分区的概念与类型,包括RANGE、LIST、HASH、KEY以及多字段COLUMNS分区,阐述了分区的优势如提升查询性能、便于数据维护、支持跨物理设备存储等,并列举了实际SQL操作示例,帮助理解分区表的创建、修改、删除及重组等操作。同时指出了分区的限制条件,如最大分区数量、主键约束要求等。; 适合人群:具备一定MySQL数据库基础,从事数据库开发、运维或架构设计的技术人员,尤其是工作中涉及大数据量表管理与性能优化的1-3年经验研发人员。; 使用场景及目标:①深入理解InnoDB存储机制,优化数据库物理结构设计;②掌握表分区技术,应用于海量数据存储与高效查询场景,如日志系统、订单系统的时间分区设计;③通过分区实现数据归档、快速删除历史数据、提升查询性能等运维目标; 阅读建议:学习时应结合MySQL实际环境动手实践文中提供的SQL命令,重点关注表空间管理和分区策略的选择,理解其对性能和维护的影响,并注意分区使用中的限制条件以避免设计失误。
内容概要:本文系统介绍了GitHub Copilot的实战使用技巧,涵盖其核心功能、提示工程、上下文管理、自定义配置及常见误区。文章强调Copilot不仅是代码补全工具,更是覆盖软件开发全生命周期的AI编程助手,重点讲解如何通过上下文工程、提示词结构化、斜杠命令与聊天参与者等方式提升代码生成质量,并结合实战案例展示在测试生成、代码重构、调试、文档编写等场景中的高效应用。同时指出Copilot的局限性,倡导“人为主导、AI辅助”的协作模式,强调代码审查与安全合规的重要性。; 适合人群:具备一定编程经验,希望提升开发效率的个人开发者、团队工程师及技术管理者,尤其是正在使用或计划引入AI编程工具的研发人员。; 使用场景及目标:①掌握Copilot在测试生成、代码解释、重构优化、调试排错等方面的高级用法;②学会构建高质量提示词与自定义指令,使AI输出更贴合项目规范;③规避常见使用陷阱,实现安全、可控、高效的AI辅助开发。; 阅读建议:此文档兼具理论指导与实操示范,建议结合实际开发环境边学边练,重点关注提示工程、上下文管理与自定义指令配置,持续迭代优化使用方式,并在团队中建立统一的AI编码规范与审查机制。

62,271

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧