KinoSearch is a loose port of the Java search engine library Apache Lucene, written in Perl and C. The archetypal application is website search, but it can be put to many different uses.
- Extremely fast and scalable - can handle millions of documents
- Incremental indexing (addition/deletion of documents to/from an existing index).
- Full support for 12 Indo-European languages.
- Support for boolean operators AND, OR, and AND NOT; parenthetical groupings, and prepended +plus and -minus
- Algorithmic selection of relevant excerpts and highlighting of search terms within excerpts
- Highly customizable query and indexing APIs
- Phrase matching
Catalyst is an elegant web application framework, extremely flexible yet extremely simple. It's similar to Ruby on Rails, Spring (Java), and Maypole, upon which it was originally based.
Catalyst follows the Model-View-Controller (MVC) design pattern, allowing you to easily separate concerns, like content, presentation, and flow control, into separate modules. This separation allows you to modify code that handles one concern without affecting code that handles the others. Catalyst promotes the re-use of existing Perl modules that already handle common web application concerns well.
Here's how the M, V, and C map to those concerns, with examples of well-known Perl modules you may want to use for each.
Control the whole request phase, check parameters, dispatch actions, flow control. Catalyst itself!
If you're unfamiliar with MVC and design patterns, you may want to check out the original book on the subject, Design Patterns, by Gamma, Helm, Johnson, and Vlissides, also known as the Gang of Four (GoF). Many, many web application frameworks are based on MVC, including all those listed above.