You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@lucene.apache.org by "Jason Gerlowski (Jira)" <ji...@apache.org> on 2019/12/05 13:22:00 UTC

[jira] [Comment Edited] (SOLR-13890) Add postfilter support to {!terms} queries

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

Jason Gerlowski edited comment on SOLR-13890 at 12/5/19 1:21 PM:
-----------------------------------------------------------------

bq. I haven't investigated how feasible it is but I wonder if Solr even needs PostFilter given TwoPhaseIterator exists. For another day.

It's a good question.  I'd imagine that two things are necessary if we wanted to replace Solr's postfilter:
# We'd need to make sure that TPI implementations provide the same performance gains as postfilter ones.  I wouldn't have doubted this previously.  But knowing that DVTQ already has TPI, and recalling the gains we saw with our postfilter in (unpublished) perf tests is enough to plant a seed of doubt for me.
# We'd need to see whether users are fine ceding control of when this special execution mode is triggered.  TPI being heuristic-triggered seems double-edged to me if a user finds themselves fighting those heuristics on a query they know would benefit from TPI.  Though maybe there's an override flag I'm just not aware of that forces TPI to be used/ignored.

That said, "for another day" for sure.


was (Author: gerlowskija):
bq. I haven't investigated how feasible it is but I wonder if Solr even needs PostFilter given TwoPhaseIterator exists. For another day.

It's a good question.  I'd imagine that two things are necessary if we wanted to replace Solr's postfilter:
# We'd need to make sure that TPI implementations provide the same performance gains as postfilter ones.  I wouldn't have considered this previously.  But knowing that DVTQ already has TPI, and recalling the gains we saw with our postfilter in (unpublished) perf tests is enough to plant a seed of doubt for me.
# We'd need to see whether users are fine ceding control of when this special execution mode is triggered.  TPI being heuristic-triggered seems double-edged to me if a user finds themselves fighting those heuristics on a query they know would benefit from TPI.  Though maybe there's an override flag I'm just not aware of that forces TPI to be used/ignored.

That said, "for another day" for sure.

> 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-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org