Uploaded image for project: 'Lucy'
  1. Lucy
  2. LUCY-113

ORMatcher and ORScorer

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • None
    • Search
    • None

    Description

      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.

      Attachments

        1. or_matcher.patch
          17 kB
          Marvin Humphrey

        Activity

          People

            marvin Marvin Humphrey
            marvin Marvin Humphrey
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: