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
] ) : resourcemnoGoSearch セッションを割り当てます。
dbaddr
dbaddr
- URL 形式のデータベース名。SQL
データベースへ接続する際のオプション (型、ホスト、データベース名、
ポート、ユーザー、パスワード)。
組み込みのテキストファイルサポートには関係ありません。
フォーマットは以下のようになります。
DBType:[//[DBUser[:DBPass]@]DBHost[:DBPort]]/DBName/
現在、サポートされている DBType の値は mysql,
pgsql, msql, solid, mssql, oracle, ibase です。
実際、ネーティブなライブラリのサポートは重要ではありません。しかし、
ODBC ユーザーは、サポートされる値の一つを指定する必要があります。
使用するデータベース型がサポートされていない場合、unknown
を代わりに使用することも可能です。
dbmode
dbmode
- 単語の記憶用 SQL データベース
モードを選択可能です。dbmode
でとりうる値は
single
、multi
、crc
あるいは crc-multi
です。
single
を指定した場合、全ての単語が同じ
テーブルに保存されます。multi
を選択した場合、
単語はその長さに応じて別々のテーブルに保存されます。通常は "multi"
モードの方が通常高速ですが、データベース上でより多くのテーブルを
必要とします。"crc" モードが選択された場合、mnoGoSearch は、単語の
代わりに CRC32 アルゴリズムで計算された 32 ビット整数の単語 ID を
保存します。このモードで必要なディスク容量はより小さいですが、
"single" および "multi" モードと比較してより高速です。
crc-multi
は、"crc" モードと同じ記憶構造を
使用しますが、"multi" モードのように単語長に応じて別々のデータベースに
単語を保存します。
注意:
dbaddr
およびdbmode
は、インデックス作成時に使用される これらの選択肢に一致している必要があります。
成功した場合に mnogosearch エージェント ID、失敗した場合に 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");
?>