Uploaded image for project: 'Lucene - Core'
  1. Lucene - Core
  2. LUCENE-2457

QueryNode implementors should override equals method

Details

    • Improvement
    • Status: Open
    • Minor
    • Resolution: Unresolved
    • None
    • 4.9, 6.0
    • core/queryparser
    • None
    • New

    Description

      Discussed on thread: http://markmail.org/thread/gjqk35t7e3y4fo5j

      "QueryNode(s) are data objects, and it makes sense to override
      their equals method. But before, we need to define what is a QueryNode
      equality. Should two nodes be considered equal if they represent
      syntactically or semantically the same query? e.g. an ORQueryNode created
      from the query <a OR b OR c> will not have the same children ordering as the
      query <b OR c OR a>, so they are syntactically not equal, but they are
      semantically equal, because the order of the OR operands (usually) does not
      matter when the query is executed. I say it usually does not matter, because
      it's up to the Query object implementation built from that ORQueryNode
      object, for this reason, I vote for defining that two query nodes should be
      equals if they are syntactically equal.

      I also vote for excluding query node tags from the equality check, because
      they are not meant to represent the query structure, but to attach extra
      info to the node, which is usually used for communication between
      processors."

      Attachments

        Activity

          People

            Unassigned Unassigned
            adriano_crestani Adriano Crestani
            Votes:
            2 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: