The search index is a list of postings sorted by word. To optimize the index for fast searching, Lucene can merge all the segments into one, which is useful for infrequently updated indexes. A postings file containing an entry for each posting Since Lucene never updates segments in place, they can be stored in flat files instead of complicated B-trees. For quick retrieval, the dictionary index contains offsets into the dictionary file, and the dictionary holds offsets into the postings file. Evaluating search engines Other widely used open source search engines include Swish-E, Glimpse, libibex, freeWAIS, and iSearch.
Incremental indexing allows easy adding of documents to an existing index.
For some applications, like those that handle live data feeds, incremental indexing is critical. Lucene supports both types of indexing. This handicaps applications where indexed data comes from a database, or where multiple virtual documents exist in a single file, such as a ZIP archive. Lucene allows developers to deliver the document to the indexer through a String or an InputStream , permitting the data source to be abstracted from the data. However, with this approach, the developer must supply the appropriate readers for the data.