Apache StormCrawler 3.4.0 发布:文本提取器重构与多项功能增强
项目概述
Apache StormCrawler 是一个基于 Apache Storm 构建的开源、分布式网络爬虫框架。它专为大规模、可扩展的网络爬取任务设计,提供了丰富的插件和扩展点,能够高效地抓取、解析和索引网页内容。StormCrawler 广泛应用于搜索引擎、数据挖掘、商业智能等领域。
版本亮点
文本提取器重大重构
在 3.4.0 版本中,开发团队对文本提取功能进行了架构层面的重构,这是本次更新的核心变化:
-
接口化改造:原有的
TextExtractor类被重构为一个接口,这为未来的扩展提供了更大的灵活性。接口化设计允许开发者更容易地实现自定义的文本提取逻辑。 -
默认实现更名:原来的
TextExtractor实现类现在更名为JSoupTextExtractor,更准确地反映了其基于 JSoup 库的实现本质。 -
向后兼容性:对于大多数用户来说,如果之前没有在配置中显式指定
textextractor.class,则无需任何修改,系统会自动使用新的默认实现。只有那些自定义了文本提取器的用户需要进行适配。
这项重构为未来支持更多样化的文本提取方式奠定了基础,比如后面会提到的 LLM 集成。
新增 LLM 文本提取器
3.4.0 版本引入了一个创新的 LLMTextExtractor,它利用大型语言模型(如 OpenAI 的 API 或兼容服务)来提取网页文本内容。这个特性为需要高质量内容提取的场景提供了新的选择:
- 能够理解网页的语义结构,提取更相关的内容
- 适用于复杂布局或动态生成内容的网页
- 可通过配置轻松集成各种兼容 OpenAI API 的服务
Solr 连接优化
针对使用 Solr 作为后端的用户,3.4.0 版本带来了两项重要改进:
-
异步查询支持:显著提高了与 Solr 交互的效率,特别是在高并发场景下。
-
云模式批量更新:优化了 Solr Cloud 环境下的批量更新操作,减少了网络开销。
OpenSearch 缓冲配置
对于 OpenSearch 用户,新版本增加了响应缓冲区大小的配置选项,允许根据实际硬件条件和网络环境调整性能参数,这在处理大规模数据时尤为重要。
其他改进
-
依赖库升级:包括 JSoup、Tika、TestContainers 等多个关键依赖的版本更新,带来性能提升和安全修复。
-
测试覆盖率改进:重新启用了测试覆盖率失败时的保留机制,便于问题诊断。
-
文档完善:更新了多个模块的 README 文件,明确了 Java 17 的要求。
-
代理管理器增强:使
ProxyManager返回 Optional 类型,提高了无代理场景下的代码健壮性。
升级建议
对于计划升级到 3.4.0 版本的用户,需要注意以下几点:
-
如果项目中直接使用了
TextExtractor类或通过textextractor.class配置指定了自定义实现,需要相应调整为新的接口和类名。 -
新版本已全面转向 Java 17 环境,确保开发和生产环境兼容。
-
对于使用 Solr 或 OpenSearch 的用户,建议评估新特性带来的性能改进,适当调整配置参数。
-
考虑尝试新的 LLM 文本提取器,特别是在处理复杂网页内容时可能获得更好的效果。
结语
Apache StormCrawler 3.4.0 通过文本提取器的重构和多项功能增强,进一步提升了框架的灵活性和性能。特别是 LLM 集成展示了项目对新兴技术的快速适应能力,为高质量内容提取提供了新的可能性。这些改进使得 StormCrawler 在大规模网络数据采集和处理领域继续保持领先地位。
kernelopenEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。C067
MiniMax-M2.1从多语言软件开发自动化到复杂多步骤办公流程执行,MiniMax-M2.1 助力开发者构建下一代自主应用——全程保持完全透明、可控且易于获取。Python00
kylin-wayland-compositorkylin-wayland-compositor或kylin-wlcom(以下简称kywc)是一个基于wlroots编写的wayland合成器。 目前积极开发中,并作为默认显示服务器随openKylin系统发布。 该项目使用开源协议GPL-1.0-or-later,项目中来源于其他开源项目的文件或代码片段遵守原开源协议要求。C01
PaddleOCR-VLPaddleOCR-VL 是一款顶尖且资源高效的文档解析专用模型。其核心组件为 PaddleOCR-VL-0.9B,这是一款精简却功能强大的视觉语言模型(VLM)。该模型融合了 NaViT 风格的动态分辨率视觉编码器与 ERNIE-4.5-0.3B 语言模型,可实现精准的元素识别。Python00
GLM-4.7GLM-4.7上线并开源。新版本面向Coding场景强化了编码能力、长程任务规划与工具协同,并在多项主流公开基准测试中取得开源模型中的领先表现。 目前,GLM-4.7已通过BigModel.cn提供API,并在z.ai全栈开发模式中上线Skills模块,支持多模态任务的统一规划与协作。Jinja00
agent-studioopenJiuwen agent-studio提供零码、低码可视化开发和工作流编排,模型、知识库、插件等各资源管理能力TSX0130
Spark-Formalizer-X1-7BSpark-Formalizer 是由科大讯飞团队开发的专用大型语言模型,专注于数学自动形式化任务。该模型擅长将自然语言数学问题转化为精确的 Lean4 形式化语句,在形式化语句生成方面达到了业界领先水平。Python00