ログ日記

作業ログと日記とメモ

あいまい検索

postgresql-contribのfuzzystrmatchを使う。
pathはDebianの場合。

$ psql dbname

# \i /usr/share/postgresql/contrib/fuzzystrmatch.sql

これで完了。

# select levenshtein('あいうえお', 'あいうえあ');
 levenshtein
-------------
           1
(1 row)

dorothy=# select levenshtein('あいうえお', 'あいうえん');
 levenshtein
-------------
           2
(1 row)

# select levenshtein('あいうえ', 'あいうえお');
 levenshtein
-------------
           3
(1 row)

日本語でUTF-8を使っていると1〜3の間でぶれる。

# select levenshtein('あいうえお', 'がぎぐげご');
 levenshtein
-------------
           5
(1 row)

# select levenshtein('あいうえお', 'パピプペポ');
 levenshtein
-------------
          10
(1 row)

なんかうまい方法は無いだろうか。