D28845: [OrpostingIterator] Allow skipping elements, implement skipTo

Stefan BrĂ¼ns noreply at phabricator.kde.org
Tue Apr 14 22:09:01 BST 2020


bruns created this revision.
bruns added reviewers: Baloo, ngraham.
Herald added projects: Frameworks, Baloo.
Herald added a subscriber: kde-frameworks-devel.
bruns requested review of this revision.

REVISION SUMMARY
  In case an OrPostingIterator is below and AndPostingIterator, which is
  the common case when using atleast two term, most of the documents will
  be skipped.
  
  Instead of skipping by repeatedly calling OrPostingIterator::next()
  implement the skipTo method. This removes the overhead of looping over
  the subsets for each next call.
  
  When skipTo is implemented in the AndPostingIterator and
  OrPostingIterator, the instruction count is significantly reduced,
  e.g. a query for "the fox" goes down from 20M to 4.5M instructions
  (query time 6ms vs 1.5ms), on a DB with 4.600 documents.
  
  Depends on D28839 <https://phabricator.kde.org/D28839>

TEST PLAN
  - ctest
  - valgrind baloosearch some words

REPOSITORY
  R293 Baloo

BRANCH
  submit

REVISION DETAIL
  https://phabricator.kde.org/D28845

AFFECTED FILES
  src/engine/orpostingiterator.cpp
  src/engine/orpostingiterator.h

To: bruns, #baloo, ngraham
Cc: kde-frameworks-devel, hurikhan77, lots0logs, LeGast00n, cblack, fbampaloukas, domson, ashaposhnikov, michaelh, astippich, spoorun, ngraham, bruns, abrahams
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/kde-frameworks-devel/attachments/20200414/13efa644/attachment.html>


More information about the Kde-frameworks-devel mailing list