全文検索namazuの不具合について

こんばんわサタルタンです。

今回は全文検索ナマズの不具合について触れようかと思います。

まず、ナマズを使用しているWEBページをGoogleなりYahooなりで検索してください。

そして、「{学校}」と検索してください。

すると検索結果で学校の「校」が文字化けします。

しないページがありますが、ある一定条件では文字化けを確認しました。

確認環境は以下の通り

Windows 7

Google Chrome、IE、Firefox

ナマズ文字コードEUC

WEBページEUC

フレーズ検索モードにて確認

以上です。

MacのSafariで試したところ文字化けしないページばかりだったので、環境によるかもしれません。

もし、フレーズ検索(フレイズ検索orフレエズ検索)を行い、文字化けするようでしたら続きのページにて記載する方法を試してください。

さてさてここを見ているということは、私と同じ問題に直面したことを前提で話を進めます。

Namazuには「make」や「make install」にてコンパイルする作業がありますが、その作業待ってください。

Tarファイルをダウンロードし、サーバーへアップロードし、tarコマンドで解凍後、「Namazuディレクトリ→nmz」へ移動します。

「vi search.c」などで「search.c」を開きます。

932行目くらいに以下のソースがあります。

1static void remove_quotes(char *str)
2{
3if ((strlen(str) >= 3 && (*str == ‘”‘ && str[strlen(str)  1] == ‘”‘))
4|| (*str == { && str[strlen(str)  1] == }))
5{
6strcpy(str, str + 1);
7str[strlen(str)  1]= ‘\0;
8}
9}

この部分の「strcpy」を書き換えることで今回の不具合が直ります。

書き換える内容は「memcpy(str,str+1,strlen(str));」です。

strcpy(str, str + 1);

memcpy(str,str+1,strlen(str));

へ変更します。

その後は通常通り「make」コマンドなどでコンパイルします。

ここで注意が必要なのは、一度「make」をしていたら正常に動作しない場合があるので、tarから解凍を再度行った後にソースを書き換えてください。

そして、別ページで紹介されている方法で設置してみてください。

正常に動きましたか?

もし、動いたらよかったですね。

comments powered by Disqus