Basic Indexing Operations
Now that you have the index set up, you are ready to start the
indexing process. Ferret allows two write operations
on an index: add and delete. By
combining these two operations, you
can perform an update operation, which you’ll also
learn about in this section, as well as retrieving documents from the
index. In this section you’ll also get an informal introduction to the
Ferret::Index::IndexReader and Ferret::Index::IndexWriter
classes through the explanations and examples. You’ll learn more about
these two classes in Chapter 3.
Add
Adding documents to the index is done with the aptly named IndexWriter
class. You’ve already seen how to add documents using the Index class; if you look under the covers,
you’ll find that the Index object is
just using an IndexWriter to write documents to the
index:
index_writer=IndexWriter.new(:path=>'path/to/index')documents.each{|doc|index_writer.add_document(doc)}index_writer.commit()
Notice the commit method at
the end. None of the changes you make to an index through an IndexWriter are guaranteed to be applied until
you call either commit, optimize, or close. The commit method simply applies all changes to
the index, leaving the IndexWriter open. close does the same thing, then closes the IndexWriter.
optimize is like commit in that it commits all changes, leaving
the IndexWriter open for more index modifications. However, it also optimizes the index for searching. This process can be quite resource-intensive 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