[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