Search code examples
filtersolr

Solr filter-query vs main-query


Solr docs state that filter queries, unlike the main query, do not influence the document score. What does this mean exactly, preferably with an example.


Solution

  • 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.