[Xapian-tickets] [Xapian] #394: Speed up phrase queries with a "settling pond"

Xapian nobody at xapian.org
Fri Dec 20 02:04:04 GMT 2019

#394: Speed up phrase queries with a "settling pond"
 Reporter:  Olly Betts   |             Owner:  Olly Betts
     Type:  enhancement  |            Status:  assigned
 Priority:  normal       |         Milestone:  1.5.0
Component:  Matcher      |           Version:  git master
 Severity:  normal       |        Resolution:
 Keywords:               |        Blocked By:
 Blocking:               |  Operating System:  All
Comment (by Olly Betts):

 Replying to [comment:15 Olly Betts]:
 > Replying to [comment:6 olly]:
 > > It occurred to me that we should be able to just make this a !PostList
 subclass which the matcher can read from.  It will return out-of-order
 docids, but that's OK as we already handle that for remote matches.
 > This is no longer the case for git master - remote matches are now
 handled by merging MSet objects rather than reinjecting their contents
 back into a local matcher loop.

 However, the (new on master) `PostListTree` class which handles the local
 shards processes them one by one but their docids are interleaved, so it
 returns docids in non-ascending order in the general case, so I think we
 can insert the settling pond either just above or just below that and keep
 the design nice and clean.  I think just below is probably the right place
 since otherwise we'd need to keep track of which `PostList` each entry in
 the pond corresponds to.  This would mean the pond had to be drained
 between processing shards, but that's not unreasonable.
Ticket URL: <https://trac.xapian.org/ticket/394#comment:17>
Xapian <https://xapian.org/>

More information about the Xapian-tickets mailing list