I needed to match a large number of of unstructured strings against a set of ontology terms (e.g. matching "two giraffes at the zoo" to the term "Giraffe"), with support for stemming.
In less than an hour, I installed KinoSearch, read the docs, and wrote a 40 line Perl app that (a) used KSx::Simple to index the ontology terms, (b) ran each unstructured text string against the index, and (c) returned the top-matching ontology term for each unstructured text string.
* Clear, well-written and comprehensive documentation.
* Clear API, familiar to Lucene users
* Very easy to use, shallow learning curve: comes with a sample app that should allow almost anyone to get a search engine running in under 20 minutes
* Relatively fast: certainly faster than any Perl search engine I have tested
If for some reason Lucene is not an option, KinoSearch is a fair fall-back.
KinoSearch is a thoroughly pleasant package to use. The author has taken the time to think through the API, provide clear documentation and examples, and continues to improve performance and features. KinoSearch is fast, robust and scalable. Try it for your next search project.