Solr调优参考-续

简介: solr调优步骤参考这篇blog主要以实践出发,从顶到底,从大到细的思路来进一步描述,solr优化,并且是基于横向发展来说的(管理更多core),对于纵向的(core内部、搜索核心技术)。 例如分词、queryparse、分词、实时、分布式的优化、排序等偏轻! 文章有不合理,或者错误的请及时反馈
solr调优步骤参考
这篇blog主要以实践出发,从顶到底,从大到细的思路来进一步描述,solr优化,并且是基于横向发展来说的(管理更多core),对于纵向的(core内部、搜索核心技术)。

例如分词、queryparse、分词、实时、分布式的优化、排序等偏轻!
文章有不合理,或者错误的请及时反馈给鹰缘。

1. 最重要、最影响系统整体稳定和吞吐量(针对业务总索引布局优化)
毫无疑问数据的分区管理、扩容是入口。另外,对于长尾应用,就是大量的小搜索接入,此时管理平台是瓶颈。


参考建议1:
将数据分片,对于solr就是分多core,能细尽量细,单个solr instance上部署core。
保守数据,单coredocument数量控制在2000w以内。
真实场景:4g
memory上日常环境,单core的数据量不大,部署了34个core,没有出啥问题。真实物理机上部署过24core,单core超过6G的索引。

参考建议2:
如果可以,建索引和查询服务器独立开来,最好的方式是前后排,不行的话就弄个集中build。
前后排是最完美了,集中build在索引同步和core切换依然对线上查询有一定影响。

参考建议3:
全量索引构建和索引查询甚至可以分开优化,构建索引的引擎可以特殊调节参数,加速索引的构建。例如,并行document,单线程write
document,而多份数据同时运行,之后merger等。极端的可以采取C++ 版构建索引,前提是索引结构要一致。

参考建议4:
流式传输。索引本身就是基于segment的分片,便于增量,增量到一定程度支持merger为更大片增量。完全可以实习流式的segment级别的索引同步,要求一个可靠的传输协议。solr
目前基于commitpoint点的增量传输还可以进一步优化。

2.针对core的优化(针对单索引优化)
core的优化首先看schema的设置。

参考建议1:
schema的字段,要每个字段每个字段去细扣。
能不stored的,将stored=false。多个需要stored的,可以考虑组成新的doc,存储到数据库,索引存共同id

能合并的,合并。合并的字段,例如属性类似的,可以考虑空格分开,然后term查询。
long short int的类型,统一使用trie类型。
如果文本排序很弱,全部text类型去掉频率位置信息,索引体积、性能有一定提升
对应时间、url等类型,执行转化、压缩,减少文本和索引相

参考建议2:
单core里面分多子目录,solr里面能针对多子目录做快速定位查询的。

参考建议3:
core可以共享index目录的,可以尝试多个core,共享相同索引目录。不同core处理一类特征请求,并针对性缓存相关信息。

3.针对query优化(针对单索引读优化)
query中能简单,尽量简单。fq使用的话,一定要配置相关cache,cache命中率反应参数大小。

参考建议1:
fq尽管可以缓存,建议fq的粒度尽量大的同时能与其他query共享。fq的FastLRUcache
值在追求命中率的同时,需要平衡gc,cache大了 gc会很频繁。
对应实时索引更新的,cache建议不要开了,频繁的reopen会导致cache的频繁迁移,实际效果不好。
facet的,这个值是lucene里面用到,能开大尽量开大,对gc尤其影响明显。慎重参数值。
在准确性上,queryparse建议使用dismax,除非对排序不是特别要求,要看具体业务,可以采取boolean 查询。
优先使用dismax,次之phrasequery,再次之booleanquery。

参考建议2:
大区间、多OR、多AND等查询,需要针对性优化。优化上次尽量与solr统一,尤其是cache的统一,底层尽量往luceneAPI靠近,尽量减少IO、充分发挥cache、减少不必要的中间解析。需要兼顾相关度有时候。

参考建议3:
如果有些数据的读写非常特别,不妨领出来,单独对象处理。例如放到本地cache中。

4.针对系统配置
主要是基础环境的选择。
参考建议1:
JVM heap不是越大越好,要兼顾gc。新生代从小值开始,逐步增大到合适。让old去空间大些,perm去两值相同
在8g及以上,务必使用CMS,cms的各参数也需要微调
极端情况,可以尝试关闭swapoff
在GC配置同时,关注cache的配置,cache往往在开启后,占住大量内存。

参考建议2:
tomcat、jetty尽量使用轻量级容器。

相关文章
|
监控 数据可视化 项目管理
CM模式是什么?如何应用?
CM 模式(Construction Management)即建设管理模式,起源于20世纪60年代的美国,通过专业的建设管理团队在项目早期介入,优化设计方案,协调各方资源,有效提升项目质量和进度控制。该模式已广泛应用于各类建筑工程,并不断创新发展,适应数字化、绿色建筑及国际化需求。未来,CM模式将继续推动建筑行业的进步。
1703 2
|
存储 Linux iOS开发
选择 MBR 还是 GPT?你需要了解的都在这里
磁盘分区表是一种存储在磁盘上的数据结构,用于存储关于磁盘分区的信息,包括分区的大小、位置和类型。MBR 和 GPT 是两种常见的磁盘分区表格式。GPT 格式较新,具有较多优势,包括: * 支持更大的磁盘容量。MBR 最大支持 2.2TB,而 GPT 支持高达 9.44ZB。 * 支持更多分区。MBR 最多支持 4 个主分区,而 GPT 支持 128 个主分区。 * 更高的安全性。GPT 使用 CRC 校验机制和备份分区表保护分区表数据的完整性,而 MBR 不使用。 MBR 是较旧的格式,但仍被广泛使用。它具有以下优势: * 与旧系统兼容。MBR 与所有版本的 Windows 和大多数版本
1150 1
选择 MBR 还是 GPT?你需要了解的都在这里
|
JavaScript 安全 Java
如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。
本文介绍了如何使用 Spring Boot 和 Ant Design Pro Vue 构建一个具有动态路由和菜单功能的前后端分离应用。首先,创建并配置 Spring Boot 项目,实现后端 API;然后,使用 Ant Design Pro Vue 创建前端项目,配置动态路由和菜单。通过具体案例,展示了如何快速搭建高效、易维护的项目框架。
462 62
|
编解码 前端开发 算法
实时云渲染方案为虚拟仿真教学搭建共享平台
实时云渲染技术的应用也日益重要,平行云作为唯一提供云渲染技术服务的企业,参与制定《虚拟仿真实验教学课程建设与共享应用规范(试用版·2020)》,有效解决下载、算力和盗版等痛点,实现随时随地的在线访问,保护知识产权,降低终端硬件要求,兼容性强,助力学校构建统一入口云平台。
|
机器学习/深度学习 自然语言处理 语音技术
ChatTTS大模型在广播电视领域的应用实例
本文介绍了基于ChatTTS大模型的文字转语音工具,该工具结合现代文本处理和语音合成技术,提供高效的音频生成解决方案。文章详细描述了工具的主要功能,包括文本输入、语音选择、语速调整等,并探讨了其在广播电视行业的应用前景,如新闻播报、广告制作和教育培训等领域。未来,该工具将集成更多高级功能,以满足行业需求。
420 9
|
Linux 人机交互 iOS开发
操作系统的演变之旅:从命令行到图形用户界面
【8月更文挑战第16天】 本文将带你穿越时空,探索操作系统的发展历程。我们将从最早期的命令行界面(CLI)开始,逐步走向现代的图形用户界面(GUI)。通过这篇文章,你将了解到操作系统如何适应技术变革,满足用户需求,并推动计算技术的发展。让我们一起见证这场由代码和创意交织而成的演变之旅吧!
309 3
|
开发者
氚云丨开发课— 06 Timer 定时器的常见使用| 学习笔记
快速学习氚云丨开发课— 06 Timer 定时器的常见使用。
|
Java 监控 安全
Java一分钟之-JMX:Java管理扩展
【6月更文挑战第3天】Java Management Extensions (JMX) 允许创建、注册和管理MBeans以监控和控制Java应用。本文关注JMX的基本概念、常见问题和易错点。关键点包括:正确实现MBean和使用`StandardMBean`,确保MBean注册时名称唯一,引用平台MBean Server,配置安全管理,以及处理MBean操作异常。理解这些概念和最佳实践对于有效利用JMX至关重要。记得在实际应用中测试管理接口并加强生产环境的安全性。
434 8
|
前端开发 测试技术 定位技术
Web Accessibility基础:构建无障碍的前端应用
网络无障碍确保所有人平等访问网站与应用,覆盖视觉、听觉等多种障碍。关键技术包括:文本替代(alt属性)、ARIA角色、清晰表单标签、键盘导航、颜色对比、视觉隐藏、ARIA live区域、触控优化、语义化编码、视觉反馈、语音支持、易读文本、状态指示、色盲友好、屏幕阅读器兼容、响应式设计、媒体内容字幕、定期测试、图像地图、语音合成、明确错误提示及焦点管理。
319 0
|
前端开发 开发工具 图形学
【你问我答】unity实现一个刮刮乐效果
【你问我答】unity实现一个刮刮乐效果
492 0

热门文章

最新文章