incubator-lucy-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Marvin Humphrey (JIRA)" <>
Subject [jira] Created: (LUCY-113) ORMatcher and ORScorer
Date Fri, 18 Jun 2010 04:00:23 GMT
ORMatcher and ORScorer

                 Key: LUCY-113
             Project: Lucy
          Issue Type: New Feature
          Components: Core - Search
            Reporter: Marvin Humphrey
            Assignee: Marvin Humphrey
         Attachments: or_matcher.patch

ORMatcher and and its scoring companion ORScorer are based on Lucene's
DisjunctionSumScorer.  They use a priority queue to channel sub-matchers and
proceed doc-at-a-time.  

This priority queue is a serious search-time bottlneck and a lot of work has
gone into optimizing the algorithm.  As in Lucene, we have inlined the
priority queue and removed as much indirection and function-call overhead as
possible.  However, in Lucene, ScorerDocQueue is a separate class, while here
everything is achieved with static functions so that the C compiler may make
maximum optimizations.

ORMatcher is separated from ORScorer as an optimization; during Next(),
ORScorer accumulates scores from subscorers which match, while ORMatcher's
Next() method skips this work and avoids the overhead.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message