NAME

    Suggest::PrePop - suggestions based on prefix and popularity

SYNOPSIS

      use Suggest::PrePop;
      my $suggestor = Suggest::Prepop->new;
      $suggestor->add("item - complete", 10);
      $suggestor->ask("item"); ["item - complete"];

DESCRIPTION

    Suggest::PrePop is a suggestion engine which uses a string prefix and
    the popularity of items to make suggestions. This is pattern is most
    often used for suggestions of partially typed items (e.g. web search
    forms.)

METHODS

    new

      Constructor. The following attributes (with defaults) may be set:

      - cache_namespace ('SUGGEST-PREPOP') - Cache::RedisDB namespace to
      use for our accounting

      - min_activity (5) - The minimum number of times an item must have
      been seen to be suggested

      - entries_limit (32768) - The count of most popular entries to
      maintain in a purge event

      - top_count (5) - The default number of entries to return from 'ask'

    scopes

      Return an array reference with all currently known scopes. Lazily
      computed on first call. Scopes are case-insensitive.

    add($item, [$count], [@scopes])

      Add $item to the scope indices, or increment its current popularity.
      Any $count is taken as the number of times it was seen; defaults to
      1. ASCII character 0x02 (STX) is reserved for internal use.

    drop_prefix($prefix, [@scopes])

      Drop all of the items which match the supplied prefiex from the
      index.

    ask($prefix, [$count], [@scopes])

      Suggest the $count most popular items n the given scopes matching the
      supplied $prefix. Defaults to 5.

    prune([$count], [@scopes])

      Prune all but the $count most popular items from the given scopes.
      Defaults to the instance entries_limit.

AUTHOR Inspire

COPYRIGHT Copyright 2016- Inspire.com

LICENSE

    This library is free software; you can redistribute it and/or modify it
    under the same terms as Perl itself.

SEE ALSO