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

Atri Sharma commented on LUCENE-8708:
-------------------------------------

ToStringInteface is a necessary evil required to create new PointRangeQuery 
instances post the merging of the interval. In the current state of affairs, 
BooleanQuery has no visibility into the type of the range query that it is 
dealing with (which is a great thing). However, that limits the ability to 
create new range queries of the parent type directly. ToStringInterface allows 
a polymorphic way to allow new range queries to be created in 
BooleanQuery.rewrite.

 

Regarding testInvalidPointLength, that test needs to be refactored to work with 
ToStringInterface. However, since that is not a blocker to the actual 
functionality, I chose not to spend time on it until we have more clarity on 
the direction in which we wish to head.

> Can we simplify conjunctions of range queries automatically?
> ------------------------------------------------------------
>
>                 Key: LUCENE-8708
>                 URL: https://issues.apache.org/jira/browse/LUCENE-8708
>             Project: Lucene - Core
>          Issue Type: Improvement
>            Reporter: Adrien Grand
>            Priority: Minor
>         Attachments: interval_range_clauses_merging0704.patch
>
>
> BooleanQuery#rewrite already has some logic to make queries more efficient, 
> such as deduplicating filters or rewriting boolean queries that wrap a single 
> positive clause to that clause.
> It would be nice to also simplify conjunctions of range queries, so that eg. 
> {{foo: [5 TO *] AND foo:[* TO 20]}} would be rewritten to {{foo:[5 TO 20]}}. 
> When constructing queries manually or via the classic query parser, it feels 
> unnecessary as this is something that the user can fix easily. However if you 
> want to implement a query parser that only allows specifying one bound at 
> once, such as Gmail ({{after:2018-12-31}} 
> https://support.google.com/mail/answer/7190?hl=en) or GitHub 
> ({{updated:>=2018-12-31}} 
> https://help.github.com/en/articles/searching-issues-and-pull-requests#search-by-when-an-issue-or-pull-request-was-created-or-last-updated)
>  then you might end up with inefficient queries if the end user specifies 
> both an upper and a lower bound. It would be nice if we optimized those 
> automatically.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

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

Reply via email to