You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "David Smiley (JIRA)" <ji...@apache.org> on 2016/11/22 21:46:58 UTC

[jira] [Closed] (SOLR-2883) Add QParser boolean hint for filter queries

     [ https://issues.apache.org/jira/browse/SOLR-2883?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

David Smiley closed SOLR-2883.
------------------------------
    Resolution: Fixed

SOLR-9786 effectively incorporated such a hint.  {{QParser.setIsFilter}}

> Add QParser boolean hint for filter queries
> -------------------------------------------
>
>                 Key: SOLR-2883
>                 URL: https://issues.apache.org/jira/browse/SOLR-2883
>             Project: Solr
>          Issue Type: Improvement
>          Components: search
>            Reporter: David Smiley
>
> It would be useful if there was a QParser hint of some kind that indicated that the score isn't needed. This would be set by Solr in QueryComponent when processing the fq param, and some field types could check for this and return more efficient Query implementations from FieldType.getFieldQuery(). For example, a geospatial field could return a ConstantScoreQuery(Filter) implementation when only filtering is needed, or return a query that returns a geospatial distance for a document's score. I think there are probably other opportunities for this flag to have its use but I'm not sure.
> As an example solution, a local param of needScore=false could be added.  I should be functionally equivalent to fq={!needScore=false}.....
> Here is a modified portion of QueryComponent at line 135 to illustrate what the change would be. I haven't tested it but it compiles.
> {code:java}
>         for (String fq : fqs) {
>           if (fq != null && fq.trim().length()!=0) {
>             QParser fqp = QParser.getParser(fq, null, req);
>             SolrParams localParams = fqp.getLocalParams();
>             SolrParams defaultLocalParams = new MapSolrParams(Collections.singletonMap("needScore","false"));
>             SolrParams newLocalParams = new DefaultSolrParams(localParams,defaultLocalParams);
>             fqp.setLocalParams(newLocalParams);
>             filters.add(fqp.getQuery());
>           }
>         }
> {code}
> It would probably be best to define the "needScore" constant somewhere better but this is it in a nutshell.



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

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