Lucene
Lucene is an Open Source full-text indexing search engine written in Java. Lucene is an extremely powerful core for creating many different type of search applications and components. It’s a library, not an application. You need to be able to program in Java (or have someone who can) for Lucene directly to be of any use to you.
This site provides some examples of how to use lucene, as well as some tricks and resources I have found while learning to use lucene.
Simple Lucene Example
Lucene example code to index simple single field data along with a very basic search function.
Multi-Field Lucene Example
Add power to your java search engine by indexing data in more than one field. Example code to index simple single field data along with a very basic search function.
High Speed Indexing
I came up with this hack to work around a disk IO bottlneck while indexing a large number of small documents. Rather than write each document direct to the index, it indexes into a RAMDirectory which is flushed to disk after a specified number of documents have been added. This has provided a huge increase in indexing throughput for at least one example, your milage may vary.
SOLR Enterprise Search
SOLR is (in their words) an Enterprise Search Engine based on Lucene. All interaction with the Lucene engine is handled through HTTP GET and POSTS of XML documents.