如何在solr中禁用排序查询的缓存?

时间:2017-10-31 14:37:48

标签: solr solrcloud

我按'id'字段排序,该字段有2500万个唯一值。因此,在排序之后,我可以看到填充了超过1 GB的“id”字段的fieldcache。因此,我想禁用在fieldcache中输入,因为我可以针对性能优化Heapmemory。我尝试提供 q={!cache=false}*.* ,但仍然可以看到fieldcache填充了id字段。我还给了docValues = true,indexed = false和stored = false但是没有什么可以阻止'id'字段在fieldcache中填充。我在云模式下使用solr 5.2.1。有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:1)

更改字段定义后,您必须重新索引所有文档。由于不会为所有文档填充使用docValues的更改,否则您仍将使用旧结构占用字段缓存中的空间。

如果您只是重新索引单个文档然后提交该文档,则该文档是唯一一个已填充docValues的文档。优化索引将合并构成索引的段,但不会重写其内容。

我不熟悉禁用字段缓存的方法。由于这是一个低级别的Lucene概念,Solr无法真正做到这一点。