【大数据开发运维解决方案】Solr公共读写调优建议

简介: Solr是一个开源搜索平台,用于构建搜索应用程序。 是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口 它建立在Lucene(全文搜索引擎)之上。 Solr是企业级的,快速的和高度可扩展的。 用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。

前言

Solr是一个开源搜索平台,用于构建搜索应用程序。 是一个独立的企业级搜索应用服务器,它对外提供类似于Web-service的API接口 它建立在Lucene(全文搜索引擎)之上。 Solr是企业级的,快速的和高度可扩展的。 用户可以通过http请求,向搜索引擎服务器提交一定格式的XML文件,生成索引;也可以通过Http Get操作提出查找请求,并得到XML格式的返回结果。


Solr调优部分总结

博主在工作中有一个基于Solr的全文检索项目,由于要求及时响应,故对Solr集群做了一些调优!
当Solr索引数据存放在本地磁盘或者HDFS时,可以从以下几个方面进行调优配置:

1、Schema的配置优化•uniqueKey定义为long类型

说明:

  • long类型的查询性能优于string类型,如果需要定义为string类型,可以在业务层建立long到string的映射。
  • 建议unqiueKey字段配置required="true"。
  • 建议uniqueKey字段配置docValues="true"。
  • 为了获得更好的查询性能,建议查询时显式地指定返回字段为uniqueKey字段。
  • 需要排序、统计的字段配置为docValues="true",可以有效节省内存使用(配置docValues="true"后,不需要再配置stored="true")

2、优化索引方案

可以通过修改“solrconfig.xml”文件内容来实现以下调优效果。

调优配置项 修改结果
提高索引速度,加大索引线程数 \<maxlndexingThreads>$(solr.maxlndexingThreads:16}</maxlndexingThreads\>
增大文档索引缓存 \<ramBufferSizeMB>1024\</ramBufferSizeMB>
增大索引段合并因子 \<memergeFactor>20\</mergeFactor>
加大索引自动硬提交时间 maxTime>$fsolr.autoCommit.maxTime:300001\</maxTime>
增大索引的自动软提交时间 \<maxTime>$solr.autoSoftCommit.maxTime:600001\</maxTime>
基于docValues获取uniqueKey的值 \<useDocValueGetField>true\</useDocValueGetField>
对docld进行排序,优先顺序读取磁盘 \<sortDocldBeforeGetDoc>true\</sortDocldBeforeGetDoc>
缓存docld,避免二次读取磁盘 \<useQuickFirstMatch>true\< /useQuickFirstMatch>

说明:
useDocValueGetField的使用场景:

  • 返回字段(fl)为uniqueKey
  • uniqueKey为Numberic类型(long/int/float/double)
  • uniqueKey配置docValues=true

useQuickFirstMatch的使用场景:

  • 索引入库后不再更改(删除/合并操作等)

3、优化查询方案

缓存在Solr中充当了一个非常重要的角色,Solr中主要包括以下3种缓存:

  • Filter cache(过滤器缓存),用于保存过滤器(fq参数)和层面搜索的结果;
  • Document cache(文档缓存),用于保存lucene文档存储的字段;
  • Query result(查询缓存),用于保存查询的结果。

    说明:
    
  • Solr中还包含lucene内部缓存,该缓存用户无法调控。

通过调整这3种缓存,可以对Solr的搜索实例进行调优。

可以通过修改“solrconfig.xml”文件内容配置缓存,如下:

缓存类型 修改方案
过滤器缓存 \<filterCache class="solr.FastLRUCache" size="200" initialSize="200" autowarmCount="50"/\>“size”和“initialSize”值为缓存document id的数量“autowarmCount”为“initialSize”值的1/4,根据实际场景合理设置,过大会占用大量内存
查询结果缓存 \<queryResultCache class="solr.FastLRUCache" size="3000"initialSize="3000autowarmCount="750"/>“size”和“initialSize”的值 = 不同查询和不同排字的数x 每次询字最数x2."autowarmCount”值为“initialSize”值的1/4.
文档缓存 ”size”和“initialSize”的值 = 一次询返回最大的文档数量x实例询的并发数

总结

Solr作为全文检索服务器时,主要是从Solr自身JVM、Schema、Solrconfig方面以及服务器性能上进行调优。

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
相关文章
|
7月前
|
人工智能 OLAP 数据处理
解锁数仓内AI流水线,AnalyticDB Ray基于多模ETL+ML提效开发与运维
AnalyticDB Ray 是AnalyticDB MySQL 推出的全托管Ray服务,基于开源 Ray 的丰富生态,经过多模态处理、具身智能、搜索推荐、金融风控等场景的锤炼,对Ray内核和服务能力进行了全栈增强。
|
6月前
|
数据采集 人工智能 大数据
10倍处理效率提升!阿里云大数据AI平台发布智能驾驶数据预处理解决方案
阿里云大数据AI平台推出智能驾驶数据预处理解决方案,助力车企构建高效稳定的数据处理流程。相比自建方案,数据包处理效率提升10倍以上,推理任务提速超1倍,产能翻番,显著提高自动驾驶模型产出效率。该方案已服务80%以上中国车企,支持多模态数据处理与百万级任务调度,全面赋能智驾技术落地。
938 0
|
6月前
|
SQL 运维 自然语言处理
Dataphin智能化重磅升级!编码难题一扫光,开发运维更高效!
Dataphin重磅推出三大核心智能化能力:智能代码助手提升SQL开发效率;智能运维助手实现移动化任务管理;智能分析通过自然语言生成SQL,助力数据价值释放。未来将持续开放智能ETL、安全助手等能力,助力企业构建高效、稳定的数据资产体系。
566 0
|
10月前
|
人工智能 运维 安全
AI大模型运维开发探索第四篇:智能体分阶段演进路线
本文探讨了智能体工程的演进历程,从最初的思维链(智能体1.0)到实例化智能体(智能体2.0),再到结构化智能体(智能体3.0),最终展望了自演进智能体(智能体4.0)。文章详细分析了各阶段遇到的问题及解决策略,如工具调用可靠性、推理能力提升等,并引入了大模型中间件的概念以优化业务平台与工具间的协调。此外,文中还提到了RunnableHub开源项目,为读者提供了实际落地的参考方案。通过不断迭代,智能体逐渐具备更强的适应性和解决问题的能力,展现了未来AI发展的潜力。
|
6月前
|
敏捷开发 运维 数据可视化
DevOps看板工具中的协作功能:如何打破开发、测试与运维之间的沟通壁垒
在DevOps实践中,看板工具通过可视化任务管理和自动化流程,提升开发与运维团队的协作效率。它支持敏捷开发、持续交付,助力团队高效应对需求变化,实现跨职能协作与流程优化。
|
6月前
|
人工智能 运维 自然语言处理
首个智能体模型实测:产品、开发、运维“全包了”
2025年,AI进入“动手”时代。智谱发布新一代大模型GLM-4.5,全球排名第三、国产第一,专为智能体设计,融合推理、编码与智能体能力,实现自主规划与执行任务。通过8个Demo展示其强大能力,涵盖网页设计、课件制作、小游戏开发等,展现其“带手的脑”特性,推动AI从实验室走向真实场景。
388 0
|
6月前
|
存储 SQL 分布式计算
MaxCompute x 聚水潭:基于近实时数仓解决方案构建统一增全量一体化数据链路
聚水潭作为中国领先的电商SaaS ERP服务商,致力于为88,400+客户提供全链路数字化解决方案。其核心ERP产品助力企业实现数据驱动的智能决策。为应对业务扩展带来的数据处理挑战,聚水潭采用MaxCompute近实时数仓Delta Table方案,有效提升数据新鲜度和计算效率,提效比例超200%,资源消耗显著降低。未来,聚水潭将进一步优化数据链路,结合MaxQA实现实时分析,赋能商家快速响应市场变化。
323 0
|
11月前
|
传感器 监控 大数据
指挥学校大数据系统解决方案
本系统集成九大核心平台,包括中心化指挥、数据处理、学生信息、反校园欺凌大数据、智慧课堂、学生行为综合、数据交换及其他外部系统云平台。通过这些平台,系统实现对学生行为、课堂表现、校园安全等多维度的实时监控与数据分析,为教育管理、执法机关、心理辅导等提供强有力的数据支持。特别地,反校园欺凌平台利用多种传感器和智能设备,确保及时发现并处理校园霸凌事件,保障学生权益。同时,系统还涵盖超市、食堂、图书馆、消防安全等辅助云平台,全面提升校园智能化管理水平。
|
9月前
|
负载均衡 算法 关系型数据库
大数据新视界--大数据大厂之MySQL数据库课程设计:MySQL集群架构负载均衡故障排除与解决方案
本文深入探讨 MySQL 集群架构负载均衡的常见故障及排除方法。涵盖请求分配不均、节点无法响应、负载均衡器故障等现象,介绍多种负载均衡算法及故障排除步骤,包括检查负载均衡器状态、调整算法、诊断修复节点故障等。还阐述了预防措施与确保系统稳定性的方法,如定期监控维护、备份恢复策略、团队协作与知识管理等。为确保 MySQL 数据库系统高可用性提供全面指导。