Chapter 2. Indexing
When you are indexing with Ferret, you need to know about the following classes:
Ferret::Store::Directory
Ferret::Index::FieldInfo
Ferret::Index::FieldInfos
Ferret::Field
Ferret::Document
Ferret::Index::IndexWriter
Ferret::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 ...
Get Ferret now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.