The initial request was slow as the UnivertedField was built and cached. Subsequent queries will be fast. To ensure that users don't see this pause after a new searcher is opened, you can warm the new searcher in the background using a static warming query in the solrconfig.xml.
There are different implementations for computing facets based on the field type. For multi-value string fields the UnivertedField is used by default. Indexing the field with DocValues would use a different implementation. The DocValues implementation should load into memory much faster then the UninvertedField, which is univerted from the index. On Sun, Dec 1, 2013 at 2:03 PM, Shyamsunder R Mutcha <sjh...@yahoo.com>wrote: > We have a large index where each document has stored multi-valued string > field called products. Also we have lot of customization of search > requests. Each request goes through a pre-defined custom search handler and > docId are stored for facet calculation. > > Following method is called to get facets for products field where docSet > is the document ids gathers in the searcher chain. > SimpleFacets f = new SimpleFacets(rb.req, docSet, msparams, rb); > > > I found this entry in the logs: > Dec 1, 2013 10:42:51 AM org.apache.solr.request.UnInvertedField uninvert > INFO: UnInverted multi-valued field > {field=products,memSize=158633430,tindexSize=1582000,time=414797,phase1=414140,nTerms=4660858,bigTerms=0,termInstances=32608058,uses=0} > > Subsequent calls for the same request are rendered fast. > Is there any way to improve the facet counting using other methods? > > Thanks -- Joel Bernstein Search Engineer at Heliosearch