You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by Shawn Heisey <so...@elyograg.org> on 2013/02/13 16:38:42 UTC
Possible Solr optimization - not calculating score when sorting
Putting my last email together about new Lucene features in Solr has led
to an unrelated question:
If you have a sort parameter that does not include score, and you don't
request score on the fl parameter, is Solr smart enough to not bother
calculating it or applying boosts, especially with distributed search?
I have a boost parameter using a few mathematical functions in my
edismax handler definition. I'd rather not have that calculation
performed if it will never be used.
A quick test with with shards.info and debugQuery=true suggests that
this is NOT the case. The maxScore field in shards.info is blank
whether debugQuery is there or not, but with debugQuery, the full score
calculation is present under explain. I can't tell if the calculation
is made just because I requested the debug. It would be good (IMHO) if
the calculation were skipped entirely when sorting on fields other than
score, even when debugQuery=true.
Are such optimizations already in place when debugQuery=false? If not,
I can open an issue.
Thanks,
Shawn
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org
Re: Possible Solr optimization - not calculating score when sorting
Posted by Yonik Seeley <yo...@lucidworks.com>.
On Wed, Feb 13, 2013 at 10:38 AM, Shawn Heisey <so...@elyograg.org> wrote:
> If you have a sort parameter that does not include score, and you don't
> request score on the fl parameter, is Solr smart enough to not bother
> calculating it
In general, yes, but it can somewhat rely on the implementation of
specific queries.
> I
> have a boost parameter using a few mathematical functions in my edismax
> handler definition. I'd rather not have that calculation performed if it
> will never be used.
In this specific case, the answer is definitely yes. The function for
a boosted query will only be evaluated in the score() method, which is
only called if you need scores.
> but with debugQuery, the full score calculation is present
> under explain. I can't tell if the calculation is made just because I
> requested the debug.
It is.
-Yonik
http://lucidworks.com
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org