Managing the field cache memory
The Solr field cache caches values for all indexed documents. To avoid out-of-memory errors, monitor the status of the field cache and set options for storing the cache on disk or on the heap.
The Solr field cache caches values for all indexed documents, which if left unchecked, can result in out-of-memory errors. For example, when performing faceted queries using multi-valued fields the multiValued fields are multi-segmented (as opposed to single segmented single-valued fields), resulting in an inefficient near real time (NRT) performance. You can use densely packed DocValue field types and per-segment docsets. Facet queries will be per-segment, which improves real-time search performance problems.
&memory=true
to the
URL used to view the status of Solr cores. For example, to view the field cache memory usage
of the DSE Search quick start example after running a few facet queries, use this
URL:http://localhost:8983/solr/admin/cores?action=STATUS&memory=true
Example 1
http://localhost:8983/solr/admin/cores?action=STATUS&wt=json&indent=on&omitHeader=on
&memory=true
. . .
"memory":{
"unInvertedFields":{
"totalSize":0,
"totalReadableSize":"0 bytes"},
"multiSegment":{
"multiSegment":"StandardDirectoryReader(segments_3:532:nrt _6p(4.6):
C3193 _71(4.6):C161 _6i(4.6):C15 _6n(4.6):C21 _6e(4.6):C16 _6k(4.6):
C19 _6t(4.6):C17 _6g(4.6):C10 _77(4.6):C12 _6v(4.6):C9 _7c(4.6):
C66 _72(4.6):C14 _6x(4.6):C7 _6y(4.6):C7 _6w(4.6):C12)",
"fieldCache":{
"entriesCount":0},
"totalSize":0,
"totalReadableSize":"0 bytes"},
"segments":{
"_6p":{
"segment":"_6p",
"docValues":{
. . .
"fieldCache":{
"entriesCount":0},
"totalSize":51600,
"totalReadableSize":"50.4 KB"}},
"totalSize":619200,
"totalReadableSize":"604.7 KB"}},
"totalMemSize":619200,
"totalReadableMemSize":"604.7 KB"}}
Example 2
. . .
"fieldCache":{
"entriesCount":1,
"id":{
"cacheType":"org.apache.lucene.index.SortedDocValues",
"size":260984,
"readableSize":"254.9 KB"}},
"totalSize":260984,
"totalReadableSize":"254.9 KB"},
"segments":{
. . .
"fieldCache":{
"entriesCount":2,
"age":{
"cacheType":"int",
"size":3832,
"readableSize":"3.7 KB"},
"id":{
"cacheType":"int",
"size":3832,
"readableSize":"3.7 KB"}},
"totalSize":59232,
"totalReadableSize":"57.8 KB"}},
"totalSize":524648,
"totalReadableSize":"512.4 KB"}},
"totalMemSize":524648,
"totalReadableMemSize":"512.4 KB"}}
Using the field cache
In Lucene-Solr 4.5 and later, docValues are mostly disk-based to avoid the requirement for large heap allocations in Solr. If you use the field cache in sort, stats, and other queries, make those fields docValues.