Emad Nashed created SOLR-7689:
---------------------------------

             Summary: QueryResultKey saved in cache uses the query after 
rewrite which causes cache misses
                 Key: SOLR-7689
                 URL: https://issues.apache.org/jira/browse/SOLR-7689
             Project: Solr
          Issue Type: Bug
          Components: search, SearchComponents - other
            Reporter: Emad Nashed


In SolrIndexSearcher class, the key used to lookup results in queryResultCache 
uses the original query. 

However later in createNormalizedWeight the query gets re-written, and then 
saved in the queryResultCache after it's re-written. 

This causes cache misses for the same query, and un-necessary inserts in the 
queryResultCache.

I can reproduce this using a re-ranking query that is using a main query as a 
dismax query, the dismax Query could be re-written into a TermQuery, which 
makes sense, but will cause cache misses.

I tested a quick solution by just using q.clone()  when it comes to build 
QueryResultKey, and it works fine, but not sure if that is the best way of 
doing it.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: dev-h...@lucene.apache.org

Reply via email to