mail_babir****@yahoo*****
mail_babir****@yahoo*****
2013年 7月 10日 (水) 15:34:54 JST
田辺です。 検索結果の件、バージョン以外の可能性が高そうですね。 こちらの環境としては、詳しくは以下の内容になっています。 CentOS 6.3 wingリポジトリのmysql 5.5.32、mroonga 3.04 設定ファイルで影響のありそうな部分というと、このあたりな気がしますが、 直接影響しているようには思えないですね・・・ # character-set character-set-server=utf8 skip-character-set-client-handshake # enable to serach 1-3len word ft_min_word_len=1 > どうするのがよいか考えることにいろいろ協力してもらってありが > とうございます。以下の方向で対応してみるので、また使い勝手な > どを教えてもらえるとうれしいです。 > > 1. 「\」で特殊文字をエスケープできるようにする > 2. 特殊文字をmroongaのドキュメントに明記する > 3. エラーが起きてもクライアントに報告せず、ログを出力する > だけにするモードを用意する > (結果は0件になる。) > (変数で挙動を変えられるようにする。) こちらこそ、細かい対応をしていただいてありがとうございます。 少なくとも、「\」でエスケープできるようにすることで、「"」を含む文字の場合のエスケープだけ特別視する、という必要はなくなるかと思うので、アプリケーション側での対応がわかりやすくなりそうです。 それに、フレーズ検索とは分けて扱えるようになるところもメリットだと思います。 あと、今回の内容に関してのことだったか曖昧なのですが、「\」の検索の際に「\\\\」というエスケープが必要という情報をどこかで見た記憶があります。 「\」自体の検索は「\\」というエスケープでできるようにお願いしたいと思います。 これなら「\」も特殊文字と考えて、他の特殊文字と同じようにエスケープが必要という認識を持つだけで済むので。 エラー出力の件も、ログのみへの出力とするモードを作るということで、ありがとうございます。 個人的には、ログ出力のみをさせるという形式の方が、他のストレージエンジンと挙動が合っているように思います。 デフォルトの設定としても問題ないと思うのですが、この点は後方互換性の考慮が必要かもしれないですね。 田辺公平