SOLR filter-query vs main-query

SOLR docs, state that filter queries, unlike the main query, do not influence the document score. Can anyone explain what does this mean exactly, preferably with an example.

Thanks.


Solution 1:

A FilterQuery ONLY stores document IDS. This makes it very fast to apply the filter to include/exclude documents. Good examples of this are when filtering products from search based on Country, Product Type, Availability, etc.

A normal query can perform the exact same function, but it has a very complex scoring system to determine "relevance". I believe the documentation is indicating that scoring is only done on the Main Query, not on the Filter Query. This should also increase query speed.

So, I can query for:

description:Kohler AND productType:Toilet

Or I can query for:

description:Kohler
with a FQ of productType:Toilet

The results would be the same, but the scores would be different. Also, if you get many different queries throughout the day that are for productType:Toilet, the FilterQuery would be cached making the overall query time faster.

Solution 2:

fq is intended for a fixed list of values. If you search on q=sunroof+stereo and fq=Mustang solr will do text analysis on the q parameter since q=sunroof+stereo and q=stereo+sunroof will return the same result set. But when filtering the search via fq there is no analysis applied to the fq param and it's assumed all returned documents will match the fq so there is no need for it to modify the score of the docs that match.