Plucene::Index::Writer - write an index.
| Use Case | Command | Description |
|---|---|---|
| Create writer | my $writer = Plucene::Index::Writer->new($path, $analyser, $create); | Open or create an index |
| Add a document | $writer->add_document($doc); | Add document to index |
| Merge other indexes | $writer->add_indexes(@dirs); | Merge external indexes |
| Optimize for search | $writer->optimize; | Single segment (call before close) |
| Document count | $writer->doc_count; | Number of documents |
| Get merge factor | $writer->mergefactor; | Current merge threshold |
| Set merge factor | $writer->set_mergefactor($value); | Adjust merge threshold |
my $writer = Plucene::Index::Writer->new($path, $analyser, $create);
$writer->add_document($doc);
$writer->add_indexes(@dirs);
$writer->optimize; # called before close
my $doc_count = $writer->doc_count;
my $mergefactor = $writer->mergefactor;
$writer->set_mergefactor($value);
This is the writer class.
If an index will not have more documents added for a while and optimal search performance is desired, then the optimize method should be called before the index is closed.
my $writer = Plucene::Index::Writer->new($path, $analyser, $create);
This will create a new Plucene::Index::Writer object.
The third argument to the constructor determines whether a new index is created, or whether an existing index is opened for the addition of new documents.
my $mergefactor = $writer->mergefactor;
$writer->set_mergefactor($value);
π§ Get / set the merge factor. It defaults to 5.
my $doc_count = $writer->doc_count;
π Returns the number of documents in the index.
$writer->add_document($doc);
β Adds a document to the index. After the document has been added, a merge takes place if there are more than $Plucene::Index::Writer::mergefactor segments in the index. This defaults to 10, but can be set to whatever value is optimal for your application.
$writer->optimize;
π§© Merges all segments together into a single segment, optimizing an index for search. This should be the last method called on an indexer, as it invalidates the writer object.
$writer->add_indexes(@dirs);
π Merges all segments from an array of indexes into this index.
β‘ This may be used to parallelize batch indexing. A large document collection can be broken into subβcollections. Each subβcollection can be indexed in parallel, on a different thread, process or machine. The complete index can then be created by merging subβcollection indexes with this method.
β After this completes, the index is optimized.
Generated by phpman v4.9.29 · Markdown · JSON · MCP Author: Che Dong Under GNU General Public License
2026-07-20 18:34 @2600:1f28:365:80b0:8802:8bb4:3873:328e
CrawledBy CCBot/2.0 (https://commoncrawl.org/faq/)
Enhanced by LLM: deepseek-v4-flash / taotoken.net / www.chedong.com - original format