是否可以设置 Oak 属性索引并避免重新索引?
Posted
技术标签:
【中文标题】是否可以设置 Oak 属性索引并避免重新索引?【英文标题】:Is it possible to set up an Oak property index and avoid reindexing? 【发布时间】:2018-03-10 12:35:17 【问题描述】:即使我在索引上添加了reindex=false
属性,它仍然会在创建时触发重新索引。
【问题讨论】:
要让索引回答您的查询,它需要重新索引现有数据。你的用例是什么? @catholicon 我知道我要搜索的数据尚未创建。所以我不需要索引现有数据,并且在大型存储库上重新索引可能会非常昂贵 【参考方案1】:您可以使用解决方法:按照您想要的方式设置索引定义,但保留type=disabled
。让它保持几秒钟(基本上,让至少一个异步索引循环完成)。然后设置type=<your-index-type>
。顺便说一句,在 Oak 1.6 之后,您还需要设置 refresh=true
以使 Oak 相信您希望将此更改(type
中的更改)存储在内部。
【讨论】:
【参考方案2】:简短的回答是否
重新索引标志主要用于索引更新。创建新索引时,它由相应的处理器索引。对于同步(主要是非 lucene),索引几乎立即开始。
对于异步索引(如 lucene),对存储库或索引的更改将在下次运行 AsyncIndexUpdate 作业时获取。
重新索引标志将从头开始重新创建索引,因此建议您在修改现有索引时使用该标志。新索引总是从头开始创建,因为该索引没有先前的检查点(之前点),并且存储库中符合条件的所有内容都将被重新索引。
更多信息可以在官方docs 中找到,特别是在reindex section 下。
一旦存储了索引定义,就会自动构建新索引。
【讨论】:
以上是关于是否可以设置 Oak 属性索引并避免重新索引?的主要内容,如果未能解决你的问题,请参考以下文章