namazu-ml(ring)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: 複数インデックス検索時の検索結果の参考ヒット数の表示について教えて下さい。



From: Miyo Soga <miyo@xxxxxxxxxxxxxx>

> UNIX版の v1.3.0.8 を使っています。
> 複数のインデックスを選択時の検索結果の参考ヒット数の所にインデックス名が表示
> されますが、
> この表示をdbname以外のものを表示させる方法を教えて下さい。
> (他のサイトでdbnameに数字を指定して、検索結果では日本語を表示しているサイト
> がありました。)

ご希望の方法とはちょっと違いますが、当方での例を参考として
紹介します。

ここではファイルシステムのパス名そのもので日本語を使い、使い勝手を
優先させています。なおかつ、できるだけ手を抜いています。:-)

問題としては、URL表記上ではエスケープされますので読みにくい点
があります。


------------------------
最終的なイメージ
------------------------
次のように日本語での表示です。

	検索フォーム:
		[X] テスト
		[X] 製品別情報

	検索結果:
		参考ヒット数:
		oテスト: [ アプリケーション: 2 ] { [ 市: 0 ] [ 場: 0 ] :: 0 } [ TOTAL: 0 ] 
		o製品別情報: [ アプリケーション: 5 ] [ 市場: 1 ] [ TOTAL: 0 ] 


------------------------
検索フォーム
------------------------
次のように日本語でVALUEおよび表示を指定します。

<INPUT TYPE='CHECKBOX' NAME='dbname' VALUE='製品別情報'>製品別情報


------------------------
対象のドキュメントのパス
------------------------
/htdocs/doc/テスト/
/htdocs/doc/製品別情報/


------------------------
インデックスファイルのディレクトリのパス
------------------------
このパス中にスペースが入ると期待通り動作しませんでした。

/namazu/index/テスト/
/namazu/index/製品別情報/


------------------------
インデックス作成
------------------------
/namazu/bin/mknmz -h -D -Y "http://hostname/doc/テスト/" "/htdocs/doc/テスト"
/namazu/bin/mknmz -h -D -Y "http://hostname/doc/製品別情報/" "/htdocs/doc/製品別情報"


------------------------
namazuの修正
------------------------
当方の環境ではそのままですと「参考ヒット数」の結果の部分で
文字化けが起りましたので、次のように手を加えています。

	* namazu-1.3.0.8
	* OSはSun SPARC Solaris 2.5.1
	* 文字コードは日本語EUC

% diff -c search.c.orig search.c
*** search.c.orig	Mon Jun 14 22:51:48 1999
--- search.c	Wed Aug 11 12:01:59 1999
***************
*** 834,843 ****
  {
      if (!HitCountOnly && !MoreShortFormat && !NoReference) {
          if (DbNumber > 1) {
!             if (HtmlOutput)
!                 printf("<LI><STRONG>%s</STRONG>: ", get_dir_name(DbNames[n]));
!             else
                  printf("(%s)", DbNames[n]);
          }
      }
  
--- 834,848 ----
  {
      if (!HitCountOnly && !MoreShortFormat && !NoReference) {
          if (DbNumber > 1) {
! 		  if (HtmlOutput){
! 			uchar buf[BUFSIZE];
! 			sprintf(buf, "<LI><STRONG>%s</STRONG>: ", get_dir_name(DbNames[n]));
! 			euctojisput(buf, stdout, 0);
! 
! 			/*printf("<LI><STRONG>%s</STRONG>: ", get_dir_name(DbNames[n]));*/
! 		  }else{
                  printf("(%s)", DbNames[n]);
+ 		  }
          }
      }

  
//hasegawa