[Xapian-tickets] [Xapian] #224: Supply and optimise more OP_VALUE_ comparison operators

Xapian nobody at xapian.org
Sun Jan 31 14:10:09 GMT 2021


#224: Supply and optimise more OP_VALUE_ comparison operators
-----------------------------+-------------------------------
 Reporter:  Richard Boulton  |             Owner:  visvesh
     Type:  enhancement      |            Status:  new
 Priority:  low              |         Milestone:  1.4.x
Component:  Matcher          |           Version:  git master
 Severity:  minor            |        Resolution:
 Keywords:  GoodFirstBug     |        Blocked By:
 Blocking:                   |  Operating System:  All
-----------------------------+-------------------------------
Comment (by visvesh):

 Since the first subpart has been done, I am trying to do the second
 subpart. My understanding of the problem is as follows:
 we are optimising the case: Xapian::Query(Xapian::Query::OP_AND, q1, q2)
 where q1 and q2 are of type OP_VALUE_*CMP*
 Since Query.internal in this case is of type QueryAnd, when we call
 query.internal->postlist (line 206 in localSubMatch.cc) we create an
 AndContext Object (line 1542 in queryinternal.cc). This recursively adds
 all the postlists that need to be “anded” together and then merges them
 and returns a single postlist. If the task is to replace the compound
 query (mentioned above) with a single range query, then I don’t see how
 query optimiser can achieve because it does not prevent
 postlist_sub_and_like(the recursive function) from adding the two
 OP_VALUE_*CMP* queries to the AndContext Object.
-- 
Ticket URL: <https://trac.xapian.org/ticket/224#comment:13>
Xapian <https://xapian.org/>
Xapian


More information about the Xapian-tickets mailing list