I use Whoosh to provide search functionality on my website and blog. It's a pure python indexer.
From the Whoosh documentation:
"To begin using Whoosh, you need an index object. The first time you create an index, you must define the index’s schema. The schema lists the fields in the index. A field is a piece of information for each document in the index, such as its title or text content. A field can be indexed (meaning it can be searched) and/or stored (meaning the value that gets indexed is returned with the results; this is useful for fields such as the title)."
A document is simply the thing that you want to store or search for. Roughly, this would be a row in database parlance.
An index stores documents. Roughly, this is a table in database parlance.
A document is made up of fields, which are the individual pieces of information that make up the document. Roughly, a field is a column in database parlance.