Documents, Fields, and Boosts
Documents
The best way to think of an index is as a searchable array of documents. A Ferret document
is a collection of fields representing a chunk of
data that you want to make searchable. Whether that chunk of data is a
database row, a Word document, or an MP3 file doesn’t matter. They are
all just documents to Ferret. A Ferret document can be represented
by the Ferret::Document
class. This class extends Ruby’s Hash
class, adding only a boost
attribute. In fact, as you saw in Example 1-2, documents
can also be Hashes, where the key is
the name of the field and the value is the data stored in the
field.
The term “document” can be quite confusing. We often need to talk
about the idea of a document in an index that is implemented by the
Document class. A document can
represent a PDF or a text document, or it can represent something like a movie or a product. Make
note of the formatting we use to distinguish documents from the
Document class.
Earlier we mentioned that Documents have a boost attribute, but we didn’t say what boost was for. The
boost attribute gives a document a
higher weighting in the results of a search. By using the boost attribute, you can make more important documents appear ...
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