[ 
https://issues.apache.org/jira/browse/SOLR-13890?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16988491#comment-16988491
 ] 

David Smiley commented on SOLR-13890:
-------------------------------------

DocValuesTermsQuery already internally uses TwoPhaseIterator which is Lucene's 
answer to Solr's PostFilter.  TwoPhaseIterator has a cool advantage in its 
ability to automatically be employed by the Query that uses it conditionally 
based on stats/weights.  Compared this to PostFilter which the user must know 
to even use and then it's not always the ideal choice to use it.  Did you test 
with the existing implementation on an fq with terms and cache=false to thus 
mix in the query with the main query?  I think it should perform decently.   I 
haven't investigated how feasible it is but I wonder if Solr even needs 
PostFilter given TwoPhaseIterator exists.  For another day. 

Another difference I see is that you're doing a top level reader approach 
instead of per-segment.  Both are "valid"; it's a trade-off between real-time 
vs static index.

> Add postfilter support to {!terms} queries
> ------------------------------------------
>
>                 Key: SOLR-13890
>                 URL: https://issues.apache.org/jira/browse/SOLR-13890
>             Project: Solr
>          Issue Type: Improvement
>      Security Level: Public(Default Security Level. Issues are Public) 
>          Components: query parsers
>    Affects Versions: master (9.0)
>            Reporter: Jason Gerlowski
>            Assignee: Jason Gerlowski
>            Priority: Major
>         Attachments: SOLR-13890.patch, SOLR-13890.patch, SOLR-13890.patch
>
>
> There are some use-cases where it'd be nice if the "terms" qparser created a 
> query that could be run as a postfilter.  Particularly, when users are 
> checking for hundreds or thousands of terms, a postfilter implementation can 
> be more performant than the standard processing.
> WIth this issue, I'd like to propose a post-filter implementation for the 
> {{docValuesTermsFilter}} "method".  Postfilter creation can use a 
> SortedSetDocValues object to populate a DV bitset with the "terms" being 
> checked for.  Each document run through the post-filter can look at their 
> doc-values for the field in question and check them efficiently against the 
> constructed bitset.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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

Reply via email to