This commit is contained in:
parent
483cf72448
commit
780c0deb1b
@ -34,7 +34,9 @@ class Doctrine_Search
|
|||||||
{
|
{
|
||||||
protected $_options = array('generateFiles' => false,
|
protected $_options = array('generateFiles' => false,
|
||||||
'className' => '%CLASS%Index',
|
'className' => '%CLASS%Index',
|
||||||
'generatePath' => false);
|
'generatePath' => false,
|
||||||
|
'batchUpdates' => false,
|
||||||
|
'pluginTable' => false);
|
||||||
|
|
||||||
|
|
||||||
public function __construct(array $options)
|
public function __construct(array $options)
|
||||||
@ -51,7 +53,7 @@ class Doctrine_Search
|
|||||||
if (isset($this->_options[$option])) {
|
if (isset($this->_options[$option])) {
|
||||||
return $this->_options[$option];
|
return $this->_options[$option];
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new Doctrine_Search_Exception('Unknown option ' . $option);
|
throw new Doctrine_Search_Exception('Unknown option ' . $option);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -79,20 +81,24 @@ class Doctrine_Search
|
|||||||
$class = $this->getOption('className');
|
$class = $this->getOption('className');
|
||||||
$name = $record->getTable()->getComponentName();
|
$name = $record->getTable()->getComponentName();
|
||||||
|
|
||||||
foreach ($fields as $field) {
|
if ($this->_options['batchUpdates'] === true) {
|
||||||
$data = $record->get($field);
|
$conn->insert(Doctrine::tableize($class), array('foreign_id' => $id));
|
||||||
|
} else {
|
||||||
$terms = $this->analyze($data);
|
foreach ($fields as $field) {
|
||||||
|
$data = $record->get($field);
|
||||||
foreach ($terms as $pos => $term) {
|
|
||||||
$index = new $class();
|
$terms = $this->analyze($data);
|
||||||
|
|
||||||
$index->keyword = $term;
|
foreach ($terms as $pos => $term) {
|
||||||
$index->position = $pos;
|
$index = new $class();
|
||||||
$index->field = $field;
|
|
||||||
$index->$name = $record;
|
$index->keyword = $term;
|
||||||
|
$index->position = $pos;
|
||||||
$index->save();
|
$index->field = $field;
|
||||||
|
$index->$name = $record;
|
||||||
|
|
||||||
|
$index->save();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -209,6 +215,8 @@ class Doctrine_Search
|
|||||||
eval($def);
|
eval($def);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$this->_options['pluginTable'] = $table->getConnection()->getTable($this->_options['className']);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user