Sennaでは、UTF-8の文字列を正規化しています。 たとえば、「?」は「ミリバール」に、「AbRACADAbra」は「abracadabra」に、「ハラヘッタZO」は「ハラヘッタZO」に変換されます。 これで、文字のゆれに対応した検索ができるわけです。 さて、某サービスでWAVE DASH(〜)とFULLWIDTH TILDE(〜)を同一視してほしい、 という要望が届きました。 そういうときはlib/nfkc.cをいじるとよいです。 lib/nfkc.cのいじり方について説明します。このソースコードは自動生成されていますので、直にいじるのはちょっと大変です。 lib/nfkc.c自動生成のためのプログラムは、util/unicode/以下に入っています。 util/unicode/icudump.cに以下のようなパッチを当てれば、FULLWIDTH TILDEを全てWAVE DASHに