Tells you what the result-set will be if you selet the facet
Another way to think of it is each field is treated as a vector containing the constraint counts for that field, and taking a "cross product" to produce an N-dimensional matrix showing the counts for each permutation.
Add facet.pivot = category_level0,category_level1,category_level2
to your query
<result numFound=”3” ...
<lst name=”facet_pivot”>
<arr name=”category_level0,category_level1,category_level2”>
<lst>
<str name=”field”>category_level0</str>
<str name=”value”>NonFic</str>
<int name=”count”>3</int>
<arr name=”pivot”>
<lst>
<str name=”field”>category_level1</str>
<str name=”value”>Law</str>
<int name=”count”>1</int>
</lst>
<lst>
<str name=”field”>category_level1</str>
<str name=”value”>Sci</str>
<int name=”count”>2</int>
<arr name=”pivot”>
<lst>
<str name=”field”>category_level2</str>
<str name=”value”>Phys</str>
<int name=”count”>1</int>
</lst>
</arr>
</lst>
</arr>
Simple!
e.g. fl=xxx,yyy
&q={!join from=inner_id to=outer_id}field:value
Comparable to an SQL IN subquery-query-query
SELECT xxx, yyy
FROM collection1
WHERE outher_id IN (SELECT inner_id FROM collection1 where zzz = "value")
Cut down regex model, e.g
field:/[alumin[i]?um]]/
You can ask solr to give you pre-committed data
You can add/subtract and replace individual fields in documents
Requires ALL fields to be "stored" type