rNote の検索プラグイン search.php の動作を修正した。

search.php は、各記事の .xml ファイルを全て読み込み検索処理を行うが、その際、 .xml ファイル内のタグの内容だけでなく、タグ自身も検索対象に含むかどうかを選択するフラグがある。

このフラグがデフォルトで true にセットされていた。なので、検索文字列として rNote と入力した場合、全ての記事がヒットしていた。

これでは意味がないので、 記事の .xml ファイルのタグ自身は検索対象から外すよう、フラグを false にした。

ところが、このときの動作として、

  $entry_buf = _file_get_contents(DIR_DATA . $fname);

if(!$this->bSearchTags){

$entry_buf = strip_tags($entry_buf);

というように、 strip_tags() の結果を使用して検索している。これだと、記事内の全てのタグの内容が無条件に検索対象になってしまうので、意図しない結果をもたらす。これではまずい。

そこで、検索対象とするタグを Title, Text, Addition, Keys に限定することにした。それぞれ、記事の題名、本文、追記、キーワードである。

これで、例えば rNote を検索文字列に指定した場合でも、正しく rNote が題名、本文、追記、キーワードに含まれる場合のみヒットするようになった。

お名前:

URL または e-mail (option):

CAPTCHA Image 左の画像内の式の計算結果を入力:
TWEET
この記事のリンク元

この記事のリンク用URL&トラックバックURL : https://red-souls.jp/ichounoki/rnote/software/20190815_110247206760.htm