Sphinx 2.0.1-betaを使用しており、MVA属性をPHP-APIで更新したいと考えています。PHP-APIでsphinx MVA属性を更新するには?
「はエラーを検索:プールメモリのうち永続的なMVA値をロードするには、メソッド呼び出しこのエラーが表示されますが、私は、コマンドラインツールを使用する場合、インデックス更新は、私はちょうどこのエラーメッセージが表示されます成功したことを確認した後 "
したがって、更新プログラムは期待どおりに機能しません。
mva_updates_pool = 128M
- を次に我々は、クラスを実装:我々は挿入/usr/local/sphinx/etc/test.configの[searchd]の節で
- sql_attr_uintの値を更新してください。非常にうまく動作します。 MVA値を使用するために、このクラスを少し拡張しました。
我々は我々がもし($ MVA)試験後$ VVの値を取得している
function UpdateAttributes ($index, $attrs, $values, $mva=false) { // verify everything assert (is_string($index)); assert (is_bool($mva)); assert (is_array($attrs)); foreach ($attrs as $attr) assert (is_string($attr)); assert (is_array($values)); foreach ($values as $id=>$entry) { assert (is_numeric($id)); assert (is_array($entry)); assert (count($entry)==count($attrs)); foreach ($entry as $v) { if ($mva) { assert (is_array($v)); foreach ($v as $vv) assert (is_int($vv)); var_dump($vv); } else assert (is_int($v)); } } ...
、PHP-API-ファイルで私たちのコードをデバッグ。
擬似コード:
$attrs:
array(1) {
[0]=>
string(12) "attributeKey"
}
$値:
array(2) {
[182371746]=>
array(1) {
[0]=>
array(2) {
[0]=>
int(1)
[1]=>
int(10)
}
}
[182371749]=>
array(1) {
[0]=>
array(2) {
[0]=>
int(2)
[1]=>
int(11)
}
}
}
- データ構造の例として、我々は、更新関数の引数として使用しますメソッド呼び出し: $ sphinxClient-> UpdateAttributes( 'destinationIndex'、$ attrs、$ valu es、true);
メソッド呼び出しは、成功した場合は更新されたドキュメント(0以上)の量に対しては3、失敗した場合は-1を返します。
このエラーが発生する理由はありますか?
私は答えを出しましたが、あなたの問題に実際には当てはまらないことを見た – Rafa