Writer
in package
Tags
Table of Contents
Properties
- $maxBufferedDocs : int
- Number of documents required before the buffered in-memory documents are written into a new Segment
- $maxMergeDocs : int
- Largest number of documents ever merged by addDocument().
- $mergeFactor : int
- Determines how often segment indices are merged by addDocument().
- $_currentSegment : DocumentWriter
- Current segment to add documents
- $_directory : DirectoryInterface
- File system adapter.
- $_indexExtensions : array<string|int, mixed>
- List of indexfiles extensions
- $_newSegments : array<string|int, mixed>
- List of the segments, created by index writer Array of Zend_Search_Lucene_Index_SegmentInfo objects
- $_segmentInfos : array<string|int, mixed>|SegmentInfo
- Array of Zend_Search_Lucene_Index_SegmentInfo objects for this index.
- $_segmentsToDelete : array<string|int, mixed>
- List of segments to be deleted on commit
- $_targetFormatVersion : int
- Index target format version
- $_versionUpdate : int
- Changes counter.
Methods
- __construct() : mixed
- Open the index for writing
- addDocument() : void
- Adds a document to this index.
- addIndexes() : void
- Merges the provided indexes into this index.
- commit() : void
- Commit current changes
- createIndex() : void
- Create empty index
- optimize() : bool
- Merges all segments together into new one
- _hasAnythingToMerge() : bool
- Check if we have anything to merge
- _maybeMergeSegments() : void
- Merge segments if necessary
- _mergeSegments() : void
- Merge specified segments
- _newSegmentName() : string
- Get name for new segment
- _updateSegments() : void
- Update segments file by adding current segment to a list
Properties
$maxBufferedDocs
Number of documents required before the buffered in-memory documents are written into a new Segment
public
int
$maxBufferedDocs
= 10
Default value is 10
$maxMergeDocs
Largest number of documents ever merged by addDocument().
public
int
$maxMergeDocs
= PHP_INT_MAX
Small values (e.g., less than 10,000) are best for interactive indexing, as this limits the length of pauses while indexing to a few seconds. Larger values are best for batched indexing and speedier searches.
Default value is PHP_INT_MAX
$mergeFactor
Determines how often segment indices are merged by addDocument().
public
int
$mergeFactor
= 10
With smaller values, less RAM is used while indexing, and searches on unoptimized indices are faster, but indexing speed is slower.
With larger values, more RAM is used during indexing, and while searches on unoptimized indices are slower, indexing is faster.
Thus larger values (> 10) are best for batch index creation, and smaller values (< 10) for indices that are interactively maintained.
Default value is 10
$_currentSegment
Current segment to add documents
private
DocumentWriter
$_currentSegment
= null
$_directory
File system adapter.
private
DirectoryInterface
$_directory
= null
$_indexExtensions
List of indexfiles extensions
private
static array<string|int, mixed>
$_indexExtensions
= array('.cfs' => '.cfs', '.cfx' => '.cfx', '.fnm' => '.fnm', '.fdx' => '.fdx', '.fdt' => '.fdt', '.tis' => '.tis', '.tii' => '.tii', '.frq' => '.frq', '.prx' => '.prx', '.tvx' => '.tvx', '.tvd' => '.tvd', '.tvf' => '.tvf', '.del' => '.del', '.sti' => '.sti')
$_newSegments
List of the segments, created by index writer Array of Zend_Search_Lucene_Index_SegmentInfo objects
private
array<string|int, mixed>
$_newSegments
= array()
$_segmentInfos
Array of Zend_Search_Lucene_Index_SegmentInfo objects for this index.
private
array<string|int, mixed>|SegmentInfo
$_segmentInfos
It's a reference to the corresponding Zend_Search_Lucene::$_segmentInfos array
$_segmentsToDelete
List of segments to be deleted on commit
private
array<string|int, mixed>
$_segmentsToDelete
= array()
$_targetFormatVersion
Index target format version
private
int
$_targetFormatVersion
$_versionUpdate
Changes counter.
private
int
$_versionUpdate
= 0
Methods
__construct()
Open the index for writing
public
__construct(DirectoryInterface $directory, array<string|int, mixed> &$segmentInfos, int $targetFormatVersion) : mixed
Parameters
- $directory : DirectoryInterface
- $segmentInfos : array<string|int, mixed>
- $targetFormatVersion : int
addDocument()
Adds a document to this index.
public
addDocument(Document $document) : void
Parameters
- $document : Document
addIndexes()
Merges the provided indexes into this index.
public
addIndexes(array<string|int, mixed> $readers) : void
Parameters
- $readers : array<string|int, mixed>
commit()
Commit current changes
public
commit() : void
createIndex()
Create empty index
public
static createIndex(DirectoryInterface $directory, int $generation, int $nameCount) : void
Parameters
- $directory : DirectoryInterface
- $generation : int
- $nameCount : int
optimize()
Merges all segments together into new one
public
optimize() : bool
Returns true on success and false if another optimization or auto-optimization process is running now
Return values
bool_hasAnythingToMerge()
Check if we have anything to merge
private
_hasAnythingToMerge() : bool
Return values
bool_maybeMergeSegments()
Merge segments if necessary
private
_maybeMergeSegments() : void
_mergeSegments()
Merge specified segments
private
_mergeSegments(array<string|int, mixed> $segments) : void
$segments is an array of SegmentInfo objects
Parameters
- $segments : array<string|int, mixed>
_newSegmentName()
Get name for new segment
private
_newSegmentName() : string
Return values
string_updateSegments()
Update segments file by adding current segment to a list
private
_updateSegments() : void