Query-regex は、与えられた検索クエリを処理し、異体字を含めて検索することのできる正規表現を生成する。
例えば、「福沢諭吉」を「福澤諭吉」や「福澤諭吉」に、「高崎」を「髙嵜」にマッチさせることができる。
任意のコード中で、 query_regex.rb を require したうえで query_regex(some_query) を呼び出すことにより、既存の検索システムを異体字に対応させることができる。
query_regex.rb にクエリを引数として渡して実行することで、変換結果を確認できる。
$ ruby query_regex.rb '福沢諭吉'
> ^(?:福|畗|福)(?:沢|澤|泽|途)(?:諭|谕|喻|喩)(?:吉|桔|姞|㮮)$
クエリを正規表現に変換することで異体字の違いを吸収するアイデアは、下記のブログ記事に基づく。
異体字一覧は、下記のリストを元に作成した。