[PHP-users 10006] field cache [subject] hit!
柴田俊秀
php-users@php.gr.jp
Wed, 11 Sep 2002 18:01:54 +0900
北海道の柴田です。
PHPのNamazu拡張モジュールについて教えてください。
インデックスを切り替えて、繰り返し検索を行うと、
Apacheのerror.logに 3回目のindexのときに
namazu(debug): field cache [subject] hit!
namazu(debug): field cache [summary] hit!
namazu(debug): field cache [uri] hit!
が記録され、nmz_result_field($result,$i,"subject")の返り値が
前回のデータになってしまいます。
キャッシュを見ないように設定できないでしょうか。
下記、関数を3回呼び出すと、1.2回目はOKで
3回目のデータが2回目のデータと同じ表示(最初のデータ)となる。
1回目 $Item=TOP 該当件数 4件 $count=4 表示OK
2回目 $Item=MAIL 該当件数 2件 $count=2 表示OK
3回目 $Item=TERM 該当件数 1件 $count=1 表示NG(MAILのデータ)
で検索件数はOK
単独で $Item=TERM のみを行うと、正常に表示される。
TERMのデータを2件と増やしても、MAILの2件のデータが表示される。
※ ソース抜粋
function faq_targetSearch($Item){ //$Itemを変えて何回か呼び出す。
global $GV_NAMAZUINDEX;
$index = array("$GV_NAMAZUINDEX/$Item");
$nmz = nmz_open($index) or die("Couldn't open index.");
$sort = 'field:{subject}';
nmz_set_sortmethod($sort);
$result = nmz_search($nmz,strip_tags($Item)) or die("Query failed.");
$count = nmz_num_hits($result); //このヒット数はデータと一致している
if ($count>0){ print("\$Item=$Item<br>");
for ($i=0;$i<$count;$i++){
print(nmz_result_field($result,$i,"subject")); //この値が???
print("<br>");
}
}
}
※ 環境 …どちらも同じ状態になる
・Linux
apache_1.3.26
namazu-2.0.10
php-4.2.2
php4_namazu-2.1.0
・Windows2000
apache_2.0.40-win32
nmz2010
php-4.2.3-Win32
php4.2.x-namazu-2.1.0-win
以上