全文検索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行目くらいに以下のソースがあります。

static
void remove_quotes(char *str)
{
if ((strlen(str) >= 3 && (*str == ‘”‘ && str[strlen(str) – 1] == ‘”‘))
|| (*str == ‘{‘ && str[strlen(str) – 1] == ‘}’))
{
strcpy(str, str + 1);
str[strlen(str) – 1]= ‘\0’;
}
}

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

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

strcpy(str, str + 1);

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

へ変更します。

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

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

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

正常に動きましたか?

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

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください