java需要帮助重新构建和优化大型solr索引
我有一个可用的Solr索引,但我需要帮助重新设计它,使其更小、更快、资源密集度更低
当前:
- 一个指数保存了过去10年的数据李>
- 每天有5千个新的文本文件被编入索引
- 索引大小每年约为40GB,因此10年加起来为400GB李>
要求:
- 每晚使用新文件更新索引的能力
- 能够从src文件重建索引-希望能加快速度李>
- 能够保持当前大量的刻面字段(30个左右)李>
- 能够保持“突出显示”-因此可以显示提取的文档中的文本李>
问题:
从头开始重建索引时,有哪些折衷(构建时间、内存需求、处理需求)以及何时发出“提交”和“优化”?:
- 构建一个单一的10年指数(在构建期间难以分发)
- 每年建立1个索引-然后合并它们
- 每月、每周或每天构建1个索引,然后将它们合并在一起
如何合并(折衷是什么):
- 使用cmd行lucene索引合并工具,或solr的web实例,或JavaAPI李>
- 合并时间需要多少临时磁盘空间(除了源索引+最终索引大小)
- 合并是否需要内存李>
- 一次合并两个更好还是同时合并所有李>
- 有没有办法让lucene cmd行索引合并工具输出进度李>
如何运行索引:
- 一个大索引
- 切分指数-多核心-每年在自己的核心李>
如何应用每日更新:
- 应用于主索引
- 创建新的每日核心作为新的碎片,而不是合并李>
- 创建新的每日核心,并将每日核心与完整索引合并
内存、磁盘和CPU的注意事项是什么?您认为单机需求是什么(对于开发/原型环境,而不是互联网规模的生产)
- 我需要不断强调。有没有办法不存储文本字段,或者缩小??在不删除在搜索结果中突出显示的功能的情况下减少最终索引的大小李>
# 1 楼答案
看看:
https://wiki.apache.org/solr/DistributedSearch
http://wiki.apache.org/solr/SolrCloud