1
0
mirror of synced 2025-03-24 17:03:56 +03:00
This commit is contained in:
zYne 2007-10-13 08:55:06 +00:00
parent 483cf72448
commit 780c0deb1b

View File

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