Kazuhiko
kazuh****@fdiar*****
2013年 3月 1日 (金) 02:15:10 JST
かずひこです。 # ここはiso-2022-jp で配信されるのか。以下文字化けは心の目でお読みくださ い。。。 On 28/02/2013 16:18, Kouhei Sutou wrote: >> インストールは、それぞれgroongaが >> ./configure --prefix=/xxx/groonga >> で、groonga-normalizer-mysqlは >> PKG_CONFIG_PATH=/xxx/groonga/lib/pkgconfig ./configure --prefix=/xxx/groonga >> です。 >> >> $ ldd normalizers/mysql.so | grep groonga >> libgroonga.so.0 => /xxx/groonga/lib/libgroonga.so.0 >> (0x00007fb10fba7000) >> >> で、RPATHは大丈夫そうに見えます。 > > うーん。which groongaが/usr/local/bin/groongaになったりして > いませんか? おぉ。。。大昔の残骸が。。。ごめんなさい。 $ /xxx/groonga/bin/groonga > normalize NormalizerMySQLUnicodeCI "aBcDe eécçuû" [[-22,1362071378.23261,0.00171327590942383,"unknown normalizer: <NormalizerMySQLUnicodeCI>",[["proc_normalize","proc.c",2854]]],""] > register normalizers/mysql [[0,1362071389.57819,0.00166535377502441],true] > normalize NormalizerMySQLUnicodeCI "aBcDe eécçuû" [[0,1362071394.16404,0.000138044357299805],{"normalized":"ABCDE EECCUU","types":[]}] ちゃんと動きました。 >> 2) mroongaから使う際に、何かセットアップする必要ありますか? >> >> groongaから使う際の'register normalizers/mysql'みたいに、mroongaだけで使 >> う際にも何かする必要がありますか? > > ないです! > 自動的にregister normalizers/mysqlしています。 ですよね! >> 3) 実際にnormalizerが効いているかどうか、mysqlから確認する方法はありますか? >> >> とりあえず、検索を試したらこんな感じですが、これだとnormalizerが効いてい >> ませんよね? >> >>> select * from full_text where match (SearchableText) against ('faure'); >> Empty set (0.01 sec) >> >>> select * from full_text where match (SearchableText) against ('faur?'); >> +------+------------------+ >> | uid | SearchableText | >> +------+------------------+ >> | 2700 | Gabriel Faur? | >> +------+------------------+ >> 1 row in set (0.00 sec) > > む。utf8_unicode_ciだとfaureでfaur?もマッチするんでしたっけ? > eと?は同一視されない気がします。。。 > (メールだから文字が変わっている。。。?) そこは'?' じゃなくて、eにアクセントの付いた文字です。 https://fr.wikipedia.org/wiki/Gabriel_Faur%C3%A9 ↑この人(フランスの作曲家)の名前です。 likeとか=とかなら'e'のままでもマッチするので、utf8_unicode_ciでマッチす るはずの字です。 で、dumpはこんな感じです。 $ /xxx/groonga/bin/groonga mariadb/test.mrn table_create full_text TABLE_PAT_KEY UInt64 column_create full_text SearchableText COLUMN_SCALAR LongText column_create full_text uid COLUMN_SCALAR UInt64 table_create full_text-SearchableText TABLE_PAT_KEY ShortText --default_tokenizer TokenBigram --normalizer NormalizerAuto ... あれれ、と思って、mysqlでdumpしてrestoreしなおしたら、ちゃんと "--normalizer NormalizerMySQLUnicodeCI" になりました! そして、もちろん意図通りに検索できました! たぶん、mariadb/test.mrnがバージョンアップ前からいてたとか、そういうこと かもしれません。 お騒がせしましてごめんなさい! かずひこ