This param will cause loading the underlying fields used in faceting to be executed in parallel with the number of threads specified. Specify as facet.threads=N where N is the maximum number of threads used. Omitting this parameter or specifying the thread count as 0 will not spawn any threads, and only the main request thread will be used. Specifying a negative number of threads will create up to Integer.MAX_VALUE threads.
POST FILTER Post Filter是一个特殊filter。它在所有的main query和filter执行完毕后才开始执行，即在mainquery和filter产生的最后交集文档后执行post filter。 post filter类似于前面提到的将filter设置为cost=100. post filter 一般用于高开销的检索和匹配。自己可以实现postfiler interface实现自己的post filter。
The fq parameter defines a query that can be used to restrict the superset of documents that can be returned, without influencing score. It can be very useful for speeding up complex queries, since the queries specified with fq are cached independently of the main query. When a later query uses the same filter, there’s a cache hit, and filter results are returned quickly from the cache. When using the fq parameter, keep in mind the following:
The fq parameter can be specified multiple times in a query. Documents will only be included in the result if they are in the intersection of the document sets resulting from each instance of the parameter. In the example below, only documents which have a popularity greater then 10 and have a section of 0 will match.fq=popularity:[10 TO *]&fq=section:0
Filter queries can involve complicated Boolean queries. The above example could also be written as a single fq with two mandatory clauses like so:fq=+popularity:[10 TO *] +section:0
The document sets from each filter query are cached independently. Thus, concerning the previous examples: use a single fq containing two mandatory clauses if those clauses appear together often, and use two separate fq parameters if they are relatively independent. (To learn about tuning cache sizes and making sure a filter cache actually exists, see The Well-Configured Solr Instance.)
It is also possible to use filter(condition) syntax inside the fq to cache clauses individually and – among other things – to achieve union of cached filter queries.
As with all parameters: special characters in an URL need to be properly escaped and encoded as hex values. Online tools are available to help you with URL-encoding. For example: http://meyerweb.com/eric/tools/dencoder/.
1 、每一个fq参数都会首先到filter cache中查询文档是否存在。 2、如果fq参数没有在 filter cache 找到，就会检索索引文件，并将检索到docset放入缓存中。 3、所有filter的docset进行取交集，最终生成一个唯一的docset。 4 、The q parameter is passed in (along with the filter DocSet) to be executed as a Lucene query. When executing the query, Lucene plays leapfrog between the query and combined filters, advancing both the query and filter results objects to their next present internal ID (an integer). When both the query result and filter result objects contain the same ID, that ID is collected, a process that includes generating the relevancy score for the document 这段我翻译的不太清楚。意思大概是将q查出来的结果和前面filter的结果进行交集，最后为交集的每一个结果计算相关性评分。 5、执行post filter
When enabled, dynamic partitioning column will be globally sorted. This way we can keep only one record writer open for each partition value in the reducer thereby reducing the memory pressure on reducers. 个人感觉就是在内部使用distribute by。