You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@lucene.apache.org by "Atri Sharma (JIRA)" <ji...@apache.org> on 2019/04/07 08:29:00 UTC

[jira] [Commented] (LUCENE-8708) Can we simplify conjunctions of range queries automatically?

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

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

Attached is a WIP patch for the same. There is one existing test which needs to be refactored to comply with the new API, which I will do before the final commit. The intent of this patch is to get early feedback and potential blockers.

This commit introduces the concept of ToString interface. While a bit of a controversial change, ToString interface is necessary to allow creation of new Range Queries of a given type post the merge. I am happy to replace it with any other alternatives that seem more sane.

[^interval_range_clauses_merging0704.patch]

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