SOLR filter-query vs main-query

FilterSolr

Filter Problem Overview


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.

Filter Solutions


Solution 1 - Filter

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 - Filter

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.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
Questionmrd3650View Question on Stackoverflow
Solution 1 - FilterrfeakView Answer on Stackoverflow
Solution 2 - Filterd whelanView Answer on Stackoverflow