For what it's worth, the following PHP code won't work:
<? $U = udm_alloc_agent('mysql://localhost/example'); ?>
But this will:
<? $U = udm_alloc_agent('mysql://localhost/example/'); ?>
That trailing slash is all-important.
(PHP 4 >= 4.0.5, PHP 5 < 5.1.0, PECL mnogosearch >= 1.0.0)
udm_alloc_agent — Запустить сессию mnoGoSearch
$dbaddr
[, string $dbmode
] ) : resourceЗапускает сессию mnoGoSearch.
dbaddr
dbaddr
- описание базы данных в URL-стиле,
с опциями (тип, хост, имя БД, порт, пользователь и пароль) для соединения
с базой данных. Формат dbaddr
:
DBType:[//[DBUser[:DBPass]@]DBHost[:DBPort]]/DBName/
.
На данный момент поддерживаются следующие значения DBType:
mysql, pgsql, msql, solid, mssql, oracle и ibase. При использовании нативных библиотек
можно не заморачиваться этими значениями, но если вы используете
ODBC, то необходимо точно указать одно из поддерживаемых значений.
Если ваша БД не поддерживается, то можете указать unknown
.
dbmode
Параметр dbmode
отвечает за режим хранения
слов в вашей БД. Допустимые значения для dbmode
такие:
single
, multi
, crc
,
или crc-multi
. Если указано single
- это означает
хранение всех слов в одной таблице, независимо от их размера.
multi
означает, что слова разной длины хранятся в разных таблицах.
Режим "multi" обычно быстрее, но требует наличия большего количества таблиц.
В режиме "crc", mnoGoSearch будет сохранять идентификаторы слов в
виде 32-битного целого числа, посчитанного как CRC32, вместо слов.
В этом режиме данные занимают меньше места на диске и в целом работа быстрее, чем
в режимах "single" и "multi". Режим crc-multi
использует ту же
структуру хранения, что и "crc", но, также, хранит слова в разных таблицах в
зависимости от их длины, как в режиме "multi".
Замечание:
Параметры
dbaddr
иdbmode
должны соответствовать тем, которые использовались при индексировании.
Возвращает идентификатор агента mnogosearch или FALSE
.
Эта функция создает сессию с параметрами базы данных.
Замечание:
Фактически эта функция не открывает соединение с базой данных и не проверяет введенные логин и пароль. Соединение и проверка логина с паролем происходят при использовании udm_find().
For what it's worth, the following PHP code won't work:
<? $U = udm_alloc_agent('mysql://localhost/example'); ?>
But this will:
<? $U = udm_alloc_agent('mysql://localhost/example/'); ?>
That trailing slash is all-important.
The function appears to ignore the second parameter completely -
and the default mode is "blob", which is not even mentioned in this page.
In order to be able to select the right mode, do the following:
<?php
$this->agent =
udm_alloc_agent("mysql://host/database/?DBMode=multi");
?>