Chapter 2. Indexing
When you are indexing with Ferret, you need to know about the following classes:
Ferret::Store::DirectoryFerret::Index::FieldInfoFerret::Index::FieldInfosFerret::FieldFerret::DocumentFerret::Index::IndexWriterFerret::Index::IndexReader
We will discuss each of these classes in this chapter. We’ll begin by
discussing index storage. This involves looking at the two implementations
of the Directory class: RAMDirectory and FSDirectory. After that, we’ll look at the
building blocks of the Ferret index—the Field and Document classes—and we’ll discuss document and
field boosting. We’ll then look at setting up the index. This involves using
the FieldInfo and FieldInfos class and is
probably the most important topic in this chapter. Finally, we’ll discuss
how the actual indexing process works, at which time you’ll learn when to
use the IndexReader
and IndexWriter
classes. Readers should pay special attention to the Index Locking and Concurrency
Issues” section in Chapter 3, as it seems to be the biggest problem area
for new users in Ferret.
Index Storage
Ferret indexes are stored in a Ferret::Store::Directory. Directory is an abstract class that
specifies how an index should be stored. Ferret comes packaged with two implementations of the
Directory class: Ferret::Store::FSDirectory
for storing the index on the filesystem, and Ferret::Store::RAMDirectory
for storing an index in memory. You’ve used both of these
classes already: RAMDirectory in Example 1-1 and ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access