Index Optimization
随着时间推移,Lucene index需要经过优化。这个过程实际上是文件的合并。在优化操作触发之前,Lucene文档删除操作只是标志删除的文档,并不会从物理上删除文档。在优化过程中,将会应用删除操作,也会影响Lucene Directory中文件的数量。
优化Lucene index可以提高搜索的速度,但对于更新操作是毫无效果的。在优化过程中,也可以进行搜索操作,但会显得有些慢。所有的index更新操作会被停止。它推荐schedule optimization:
- 在一个空闲的系统中或当搜索不频繁时。
- 在大量index修改后
当使用MassIndexer(see Section 6.3.2, “Using a MassIndexer”),它会在建立index过程中优化。也可以使用MassIndexer.optimizeAfterPurge和MassIndexer.optimizeOnFinish改变MassIndexer的表现
7.1. Automatic optimization
Hibernate Search会在下面情景后自动地进行优化操作:
- 在一定操作数后(插入,删除)
- 在进行了一定事务处理数量后
可以在全局级别或具体index级别上定义自动index优化配置:
hibernate.search.default.optimizer.operation_limit.max = 1000
hibernate.search.default.optimizer.transaction_limit.max = 100
hibernate.search.Animal.optimizer.transaction_limit.max = 50
Animal index优化操作会因下面情形触发:
- 添加删除操作数超过1000
- 事务数量到过50。hibernate.search.Animal.optimizer.transaction_limit.max比hibernate.search.default.optimizer.transaction_limit.max有更高的优先级。
如果没有定义这些参数,将不会自动地进行优化操作。
7.2. Manual optimization
你也可以通过编程来优化一个Lucene index,这也要借助Hibernate Search的SearchFactory:
Example 7.2. Programmatic index optimization
FullTextSession fullTextSession = Search.getFullTextSession(regularSession);
SearchFactory searchFactory = fullTextSession.getSearchFactory();
searchFactory.optimize(Order.class);
// or
searchFactory.optimize();
第一个例子只优化Order索引,第二个例子,优化所有index。
Note:searchFactory.optimize()对JMS backend没有任何效果。你必须应用优化操作在Master端。
7.3. Adjusting optimization
Apache Lucene有一些参数影响优化过程的表现。Hibernate Search暴露了这些参数:
- hibernate.search.[default|<indexname>].indexwriter.[batch|transaction].max_buffered_docs
- hibernate.search.[default|<indexname>].indexwriter.[batch|transaction].max_merge_docs
- hibernate.search.[default|<indexname>].indexwriter.[batch|transaction].merge_factor
- hibernate.search.[default|<indexname>].indexwriter.[batch|transaction].ram_buffer_size
- hibernate.search.[default|<indexname>].indexwriter.[batch|transaction].term_index_interval
See Section 3.10, “Tuning Lucene indexing performance” for more details
分享到:
相关推荐
64-ia-32-architectures-optimization-manual.pdf,CPU 设计参考手册
The most comprehensive coverage of search engine optimization In Search Engine Optimization All-in-One For Dummies, 3rd Edition, Bruce Clay—whose search engine consultancy predates Google—shares ...
搜索引擎优化入门指南(search-engine-optimization-starter-guide),主要针对Google搜索优化
Even though this guide's title contains the words "search engine", we'd like to say that you should base your optimization decisions first and foremost on what's best for the visitors of your site....
an-introduction-to-optimization-4th-edition-solution-manual 为an introduction-to-optimization-4th-edition 的习题解答,高清英文完整版本
BBO,Biogeography-Based-Optimization,生物地理学优化算法的python代码。
Multi-Objective Particle Swarm Optimization ------(MOPSO)
Spatio-Temporal-Power-Optimization-for-MIMO-Joint-Communication
ExtremeLearningMachine资源共享-ACOSampling--An-ant-colony-optimization-based-undersampling-met_2013_Neuroco.pdf 小弟准备学习ELM,才收集到一些相关资料,发现论坛中并无相关资料,因此把自己手头上收集到...
PSO OPTIMIZATION IN MICROGRID
google的算法正在变化,看看其中的秘密。 Google’s-Secret-Sauce-Revealed-The-Death-and-Life-of-Search-Engine-Optimization
64-ia-32-architectures-optimization-manual
简介:蝗虫算法( Grasshopper Optimization Algorithm,GOA ) 是 由 Saremi 等[1]于2017 年提出的一种元启发式仿生优化算法,具有较高的搜索效率和较快的收敛速度,且算法本身特殊的自适应机制能够很好地平衡全局和...
资料分享optimizationtoolboxUsersGuideforR2013b-global-optimization-toolbox.pdf 本帖最后由 wereineky 于 2014-1-18 20:25 编辑 matlab官网提供的优化工具箱 用户手册,对应最新2013b版本,讲解的很详细,...
Practical-Python-AI-Projects-Mathematical-Models-of-Optimization-Problems-with-Google-OR-Tools.pdf
64-ia-32-architectures-optimization-manual
Pyomo-Optimization-Modeling-in-Python.pdf
Algorithm-Nonlinear-Optimization-Algorithms.zip,各种非线性规划算法的matlab实现。,算法是为计算机程序高效、彻底地完成任务而创建的一组详细的准则。