質問箱/4583

カテゴリ
サマリ検索時のエラー
バージョン1.4.7
投稿者idea?
状態完了
投稿日2010-05-27 (木) 18:40:05

質問

検索時、boxに入力した場合なのですが、文字と文字の間にスペースを空けてもワンフレーズとして検索がかかってしまいますが、どんな理由が考えられるでしょうか?

回答

  • Google とは違い、全角スペースは区切りとして扱われません。例えば、「検索 スペース」で検索をすると"検索 スペース"というフレーズを探しに行ってしまい、"検索andスペース"または"検索orスペース"の意味で動作しません。「検索 スペース」のように、区切りとして半角スペースを使用してください。
    この仕様を変えたいなら、質問箱/4085?を参照してください。 -- 2010-05-27 (木) 18:58:55
  • 解説ありがとうございます。半角スペースで検索してみたところ、条件を満たす検索はされたように思います。「検索 フレーズ」の後方のみにハイライトがなされています。この原因はお分かりになりますでしょうか?? -- idea? 2010-05-28 (金) 08:54:01
  • 追加で申し訳ありません。検索結果が表示されたときに、下に検索boxが表示されています。しかし、そこをクリックして検索すると「有効なwikinameではありません」と表示されてしまいます。この原因もわかりましたら、ご教授願います。もしくは、検索結果表示時に同時に表示されるこの検索boxを表示しないようにするにはどうしたらいいでしょうか。(toolbarのようにページ上部に検索boxが常に表示されるようにしているため) -- idea? 2010-05-28 (金) 10:01:40
  • 単語未入力時にフォームが非表示になればいいのかな?
     	$type = isset($vars['type']) ? $vars['type'] : '';
     	$base = isset($vars['base']) ? $vars['base'] : '';
    +	$bases = ($base == '') ? array() : array($base);
     
     	if ($s_word != '') {
     		// Search
     		$msg  = str_replace('$1', $s_word, $_title_result);
     		$body = do_search($vars['word'], $type, FALSE, $base);
     	} else {
     		// Init
     		unset($vars['word']); // Stop using $_msg_word at lib/html.php
     		$msg  = $_title_search;
     		$body = '<br />' . "\n" . $_msg_searching . "\n";
    +		$body .= plugin_search_search_form($s_word, $type, $bases);
     	}
     
     	// Show search form
    -	$bases = ($base == '') ? array() : array($base);
    -	$body .= plugin_search_search_form($s_word, $type, $bases);
    +	//$bases = ($base == '') ? array() : array($base);
    +	//$body .= plugin_search_search_form($s_word, $type, $bases);
     
     	return array('msg'=>$msg, 'body'=>$body);
     }
     
     function plugin_search_search_form($s_word = '', $type = '', $bases = array())
    未入力時にもフォームがいらないのであれば、コメントに変更する部分だけで十分なんですが。 -- 2010-05-28 (金) 15:05:20
  • (本当はどんな単語で検索したのかがわからないので、)実際に出力されたHTMLソース(例えば、「ぱんだ パンダ」で検索した場合は
    <div class="small">これらのキーワードがハイライトされています:
    <strong class="word0"><strong class="word1">ぱんだ</strong></strong>
    <strong class="word0"><strong class="word1">パンダ</strong></strong>
    </div>
    のようになる)を見ないとはっきりとはいえませんが・・・。mbstringを使って内部的に「全角英数字を半角に変換」と「半角カタカナを全角カタカナに変換」と「全角ひらがなを全角カタカナに変換」を行っている事が原因ではないですよね。 -- 2010-05-28 (金) 15:28:47
  • ソースを見てみたところこのようになっていました。
    <p>これらのキーワードがハイライトされています:
    <strong class="word0">マニュアル</strong>
    <strong class="word1">原則</strong></p><hr class="full_hr" />
    clubskinをEUC版で無理やり利用してみていますが、その辺も関係しているのでしょうか・・・-- idea? 2010-05-31 (月) 14:21:16
  • これは、CSSの問題ですね。デフォルト用のCSSであるskin/pukiwiki.css.phpには、検索ワードの色付け用にstrong.word0~strong.word9の10色を登録しています。しかし、clubskin用のCSSであるcommon/css/container.cssには、デフォルト用のstrong.word0に相当するdiv#mainContents strong.word0しか登録されていませんので、複数の単語を検索すると1つしか色付けされないという結果になります。
    ちなみに、自作スキンのclubskinを使っているという情報がなければ、こちらで試験動作なんてできませんでしたが。(素早く確実な回答がほしいなら、問題がない程度に環境を開示された方がいいですよ) -- 2010-05-31 (月) 20:29:28
  • わかりました。丁寧にありがとうございます。 -- idea? 2010-06-01 (火) 08:59:19
  • 申し訳ありません。いろいろ触って試していますが、結局のところどのように対応したらよいのでしょうか。
    • 1.検索時にハイライトが複数の検索ワードにも反映されるようにしたい。
    • 2.検索時に全角スペースでand検索をしたい。
    当方、1.4.7でクラブスキンを無理やりEUC版で利用しております。 -- idea? 2010-06-01 (火) 16:52:48
  • 1.の回答。common/css/container.cssで
    div#mainContents strong.word0 { background-color: #FF0; }
    の後ろに、
    div#mainContents strong.word1 { background-color:#A0FFFF; }
    div#mainContents strong.word2 { background-color:#99FF99; }
    div#mainContents strong.word3 { background-color:#FF9999; }
    のように必要な数だけ追加していく(ここで例示した色はデフォルトのコピーなので、スキンに合わせて修正してください) -- 2010-06-01 (火) 18:26:58
  • ありがとうございます。一応自分もこのようにやってみたつもりでしたが、うまくいきませんでした。コピペで能がないですけども、この通りでうまくいきました。ありがとうございます。 -- idea? 2010-06-02 (水) 11:38:25
  • dev:BugTrack/746 -- 2010-06-02 (水) 18:06:21
    • ありがとうございます。1.4.7で試してみましたが、下記のようなエラーが出てしまいました。
      Fatal error: Call to undefined function mb_convert_kana() in /格納場所/search.inc.php on line 52
      $vars['word'] = mb_convert_kana($vars['word'], 's');
      の部分です。 素人で申し訳ありませんが、分かりましたらご教授ください。 -- idea? 2010-06-03 (木) 09:01:40
      • 未定義の関数mb_convert_kanaを呼び出そうとした、というエラーです。今回は、mbstringモジュールが入っていない(有効になっていない)事が原因だと思われます。 -- 2010-06-03 (木) 18:37:13
  • ありがとうございます。php.iniのmbstringの中にこれに関する設定があるということでしょうか? -- idea? 2010-06-04 (金) 10:38:22
  • mbstring -- 2010-06-05 (土) 14:20:54
  • mbstringがphpinfoの中に表示されず、うまくいきませんでした。 -- idea? 2010-06-07 (月) 10:46:55
  • 「組み込まれていない場合や必要な機能が無効になっている場合は、PHPをリビルドして再導入することになります。」 -- よっちい 2010-06-07 (月) 11:57:41
  • すいません。さっくと出現しました。 -- idea? 2010-06-07 (月) 13:42:32
  • おかげさまでうまくいきました。皆様こんな素人相手に、懇切丁寧にお付き合いいただきありがとうございました。 -- idea? 2010-06-07 (月) 13:49:21

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2014-12-17 (水) 20:01:51
Site admin: PukiWiki Development Team

PukiWiki 1.5.2+ © 2001-2019 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u7. HTML convert time: 0.320 sec.

OSDN