#author("2017-02-24T00:15:16+09:00;2017-02-22T08:09:32+09:00","","") *「単語検索の結果表示を拡張」の標準化 [#vdc8b14d] -ページ: BugTrack -投稿者: [[toba]] -優先順位: 低 -状態: 着手 -カテゴリー: 本体新機能 -投稿日: 2004-09-16 (木) 09:39:26 -バージョン: 1.4.4 **メッセージ [#necc3ac6] [[PukiWiki/1.4/ちょっと便利に/単語検索の結果表示を拡張]]の標準化を希望します。~ 小規模なサイトには非常に便利なこの機能があれば、検索結果一覧からページを選択して見ていくのに、一覧の時点である程度のマトが絞られ、非常に便利かと思います。~ 勿論、中・大規模なサイトでは負担が増える場合が想定されるので、pukiwiki.ini.phpあたりで機能のON・OFFが選択できると、運用していく過程で小規模→中・大規模になって、負担が増えた場合に運用方法の変更ができるのではと思います。 *** [[BugTrack/607]]より: [#ucd8b0ec] pukiwiki.ini.php できりかえられるとよいかと思います。 //検索の際にページ名だけではなくマッチした行も表示する $search_detail = 1; のように。 まだ問題点があるようですが、改善含めてよろしくお願いします。 **関連 [#s8e8d852] - [[PukiWiki/1.4/ちょっと便利に/単語検索の結果表示を拡張]] - - [[しろくろのへや:質問箱/63]] - [[official:WebTrack/4]] - [[official:欲しいプラグイン/112]] ---- -20件ずつ表示とかなら便利ですね。 -- [[あーる]] &new{2004-09-30 (木) 23:17:09}; -うーむ、すでに副作用が挙げられていますね (^^; -- [[henoheno]] &new{2004-10-01 (金) 21:05:25}; -副作用の解決案です。検索結果を整形済みテキストにすることで、エラーは発生しなくなるかと思います。-- [[teanan]] &new{2005-05-16 (月) 14:47:12}; -- &ref(./search_pre.diff.1.4.5_1.txt); ((pukiwiki-1.4.5_1 で最小の差分になるようにしています。)) --wiki書式のまま表示されるので使い勝手はいまいちかもしれませんが・・・ (^^; -- [[teanan]] &new{2005-05-16 (月) 14:49:17}; #ref(do_search_diff.gif,nolink,center) -いい感じですね ;) 絵を張っときました。既存の検索と切り替えができないので現状 patch提供のみになりそうですね・・・。ところでdo_search()、何か直せそうな所は無いでしょうか -- [[henoheno]] &new{2005-05-17 (火) 21:50:53}; -Wiki書式のままの出力ってカッコ良くはないですけど、//のコメントも検索に引っかかる仕様も考えると、都合良いときもあるような (ので賛成に一票)。 -- [[にぶんのに]] &new{2005-05-17 (火) 23:13:22}; -あら、まだ無駄なcountが残ってましたね (^^; 差分をかなりシェイプアップしたので、機能のON/OFFへの対応は簡単です :) -- [[teanan]] &new{2005-05-23 (月) 18:09:22}; pukiwiki.ini.php : 233行目あたりが最適か? ///////////////////////////////////////////////// // Search detail // 0: only page name // 1: content in detail $search_detail = 0; --- func.php.orig Sun Feb 20 21:50:06 2005 +++ func.php Mon May 23 18:20:47 2005 @@ -177,6 +177,7 @@ global $script, $whatsnew, $non_list, $search_non_list; global $_msg_andresult, $_msg_orresult, $_msg_notfoundresult; global $search_auth; + global $search_detail; $retval = array(); @@ -201,12 +202,14 @@ array_unshift($source, $page); // ページ名も検索対象に $b_match = FALSE; + $lines = array(); foreach ($keys as $key) { $tmp = preg_grep('/' . $key . '/', $source); $b_match = ! empty($tmp); + $lines += $tmp; if ($b_match xor $b_type) break; } - if ($b_match) $pages[$page] = get_filetime($page); + if ($b_match) $pages[$page] = array(get_filetime($page), $lines); } if ($non_format) return array_keys($pages); @@ -217,13 +220,21 @@ ksort($pages); $retval = '<ul>' . "\n"; - foreach ($pages as $page=>$time) { + foreach ($pages as $page=>$arr) { + list($time, $lines) = $arr; $r_page = rawurlencode($page); $s_page = htmlspecialchars($page); $passage = get_passage($time); $retval .= ' <li><a href="' . $script . '?cmd=read&page=' . $r_page . '&word=' . $r_word . '">' . $s_page . '</a>' . $passage . '</li>' . "\n"; + if ($search_detail == 1) { + $source = ''; + foreach ($lines as $line) { + $source .= ' '.trim($line)." \n"; + } + $retval .= convert_html($source); + } } $retval .= '</ul>' . "\n"; -添付できないので、ベタで書きました &sad; -- [[teanan]] &new{2005-05-23 (月) 18:24:25}; -さらに拡張してみました。詳細は[[teanan:自作プラグイン/search.inc.php(改)]]にて。 -- [[teanan]] &new{2005-06-07 (火) 04:53:41}; - JavaScriptを利用して分割して検索することで、サーバー負荷を軽減することを考えています -- [[umorigu]] &new{2017-02-22 (水) 07:22:31}; -- 負荷軽減というより負荷分割ですね。CPU1コアに対して負荷100%の処理が1分続くより、10秒の処理を7回の方が(他の処理を割り込ませられるので)複数人で使う場合に利便性が高い -- [[umorigu]] &new{2017-02-22 (水) 08:09:31}; #comment