[groonga-dev,01225] Re: [ANN] mroonga 3.01

Zurück zum Archiv-Index

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がバージョンアップ前からいてたとか、そういうこと
かもしれません。

お騒がせしましてごめんなさい!

かずひこ




groonga-dev メーリングリストの案内
Zurück zum Archiv-Index