import v1.1.0_beta1 | 2009-08-21
This commit is contained in:
@ -189,11 +189,8 @@ class Zend_Search_Lucene_Index_Writer
|
||||
$segmentsFile = $directory->createFile('segments');
|
||||
$segmentsFile->writeInt((int)0xFFFFFFFF);
|
||||
|
||||
// write version (is initialized by current time
|
||||
// $segmentsFile->writeLong((int)microtime(true));
|
||||
$version = microtime(true);
|
||||
$segmentsFile->writeInt((int)($version/((double)0xFFFFFFFF + 1)));
|
||||
$segmentsFile->writeInt((int)($version & 0xFFFFFFFF));
|
||||
// write version (initialized by current time)
|
||||
$segmentsFile->writeLong(round(microtime(true)));
|
||||
|
||||
// write name counter
|
||||
$segmentsFile->writeInt($nameCount);
|
||||
@ -214,11 +211,8 @@ class Zend_Search_Lucene_Index_Writer
|
||||
$segmentsFile = $directory->createFile(Zend_Search_Lucene::getSegmentFileName($generation));
|
||||
$segmentsFile->writeInt((int)0xFFFFFFFD);
|
||||
|
||||
// write version (is initialized by current time
|
||||
// $segmentsFile->writeLong((int)microtime(true));
|
||||
$version = microtime(true);
|
||||
$segmentsFile->writeInt((int)($version/((double)0xFFFFFFFF + 1)));
|
||||
$segmentsFile->writeInt((int)($version & 0xFFFFFFFF));
|
||||
// write version (initialized by current time)
|
||||
$segmentsFile->writeLong(round(microtime(true)));
|
||||
|
||||
// write name counter
|
||||
$segmentsFile->writeInt($nameCount);
|
||||
@ -435,9 +429,9 @@ class Zend_Search_Lucene_Index_Writer
|
||||
|
||||
try {
|
||||
// Write format marker
|
||||
if ($this->_targetFormatVersion == Zend_Search_lucene::FORMAT_2_1) {
|
||||
if ($this->_targetFormatVersion == Zend_Search_Lucene::FORMAT_2_1) {
|
||||
$newSegmentFile->writeInt((int)0xFFFFFFFD);
|
||||
} else if ($this->_targetFormatVersion == Zend_Search_lucene::FORMAT_2_3) {
|
||||
} else if ($this->_targetFormatVersion == Zend_Search_Lucene::FORMAT_2_3) {
|
||||
$newSegmentFile->writeInt((int)0xFFFFFFFC);
|
||||
}
|
||||
|
||||
@ -453,16 +447,9 @@ class Zend_Search_Lucene_Index_Writer
|
||||
throw new Zend_Search_Lucene_Exception('Unsupported segments file format');
|
||||
}
|
||||
|
||||
// $version = $segmentsFile->readLong() + $this->_versionUpdate;
|
||||
// Process version on 32-bit platforms
|
||||
$versionHigh = $segmentsFile->readInt();
|
||||
$versionLow = $segmentsFile->readInt();
|
||||
$version = $versionHigh * ((double)0xFFFFFFFF + 1) +
|
||||
(($versionLow < 0)? (double)0xFFFFFFFF - (-1 - $versionLow) : $versionLow);
|
||||
$version += $this->_versionUpdate;
|
||||
$version = $segmentsFile->readLong() + $this->_versionUpdate;
|
||||
$this->_versionUpdate = 0;
|
||||
$newSegmentFile->writeInt((int)($version/((double)0xFFFFFFFF + 1)));
|
||||
$newSegmentFile->writeInt((int)($version & 0xFFFFFFFF));
|
||||
$newSegmentFile->writeLong($version);
|
||||
|
||||
// Write segment name counter
|
||||
$newSegmentFile->writeInt($segmentsFile->readInt());
|
||||
@ -482,21 +469,18 @@ class Zend_Search_Lucene_Index_Writer
|
||||
|
||||
if ($srcFormat == Zend_Search_Lucene::FORMAT_PRE_2_1) {
|
||||
// pre-2.1 index format
|
||||
$delGenHigh = 0;
|
||||
$delGenLow = 0;
|
||||
$delGen = 0;
|
||||
$hasSingleNormFile = false;
|
||||
$numField = (int)0xFFFFFFFF;
|
||||
$isCompoundByte = 0;
|
||||
$docStoreOptions = null;
|
||||
} else {
|
||||
//$delGen = $segmentsFile->readLong();
|
||||
$delGenHigh = $segmentsFile->readInt();
|
||||
$delGenLow = $segmentsFile->readInt();
|
||||
$delGen = $segmentsFile->readLong();
|
||||
|
||||
if ($srcFormat == Zend_Search_Lucene::FORMAT_2_3) {
|
||||
$docStoreOffset = $segmentsFile->readInt();
|
||||
|
||||
if ($docStoreOffset != -1) {
|
||||
if ($docStoreOffset != (int)0xFFFFFFFF) {
|
||||
$docStoreSegment = $segmentsFile->readString();
|
||||
$docStoreIsCompoundFile = $segmentsFile->readByte();
|
||||
|
||||
@ -525,8 +509,6 @@ class Zend_Search_Lucene_Index_Writer
|
||||
if (!in_array($segName, $this->_segmentsToDelete)) {
|
||||
// Load segment if necessary
|
||||
if (!isset($this->_segmentInfos[$segName])) {
|
||||
$delGen = $delGenHigh * ((double)0xFFFFFFFF + 1) +
|
||||
(($delGenLow < 0)? (double)0xFFFFFFFF - (-1 - $delGenLow) : $delGenLow);
|
||||
if ($isCompoundByte == 0xFF) {
|
||||
// The segment is not a compound file
|
||||
$isCompound = false;
|
||||
@ -549,19 +531,11 @@ class Zend_Search_Lucene_Index_Writer
|
||||
} else {
|
||||
// Retrieve actual deletions file generation number
|
||||
$delGen = $this->_segmentInfos[$segName]->getDelGen();
|
||||
|
||||
if ($delGen >= 0) {
|
||||
$delGenHigh = (int)($delGen/((double)0xFFFFFFFF + 1));
|
||||
$delGenLow =(int)($delGen & 0xFFFFFFFF);
|
||||
} else {
|
||||
$delGenHigh = $delGenLow = (int)0xFFFFFFFF;
|
||||
}
|
||||
}
|
||||
|
||||
$newSegmentFile->writeString($segName);
|
||||
$newSegmentFile->writeInt($segSize);
|
||||
$newSegmentFile->writeInt($delGenHigh);
|
||||
$newSegmentFile->writeInt($delGenLow);
|
||||
$newSegmentFile->writeLong($delGen);
|
||||
if ($this->_targetFormatVersion == Zend_Search_Lucene::FORMAT_2_3) {
|
||||
if ($docStoreOptions !== null) {
|
||||
$newSegmentFile->writeInt($docStoreOffset);
|
||||
|
Reference in New Issue
Block a user