What docvalues are:
- NRT-compatible: These are per-segment datastructures built at index-time and designed to be efficient for the use case where data is changing rapidly.
- Basic query/filter support: You can do basic term, range, etc queries on docvalues fields without also indexing them, but these are constant-score only and typically slower. If you care about performance and scoring, index the field too.
- Better compression than fieldcache: Docvalues fields compress better than fieldcache, and “insanity” is impossible.
- Able to store data outside of heap memory: You can specify a different docValuesFormat on the fieldType (docValuesFormat=“Disk”) to only load minimal data on the heap, keeping other data structures on disk.
What docvalues are not:
- Not a replacement for stored fields: These are unrelated to stored fields in every way and instead datastructures for search (sort/facet/group/join/scoring).
- Not a huge improvement for a static index: If you have a completely static index, docvalues won’t seem very interesting to you. On the other hand if you are fighting the fieldcache, read on.
- Not for the risk-averse: The integration with Solr is very new and probably still has some exciting bugs!