2013-01-01から1ヶ月間の記事一覧

EXTENSION機能の限界?

PostgreSQLの9.1から導入されたEXTENSIONの機構は、単にインストールスクリプトの隠蔽というだけでなく、パッケージに属する作成オブジェクト一覧の表示や、パッケージのバージョン管理もやってくれる便利な機構なんだけど、ちょっとだけ困ったことがある・…

textsearch_jaの正規化関数

textsearch_jaの正規化関数も結構頑張ってるなあ・・・ 半角カナ→全角カナ変換だけでなく、NFD(Normalization Form Decomposition)形式の濁点カナ(「ウ゛」など)から、NFC(Normalization Form Composition)形式の濁点カナ(「ヴ」など)への変換も対応している…

PostgreSQL 9.2へのtextsearch_jaインストール

忘れてたよ・・・9.2で以下の変更が入ってたんだっけ・・・ CREATE FUNCTIONで、手続き言語の名前を強制的に小文字に変換しないようにしました。 なので、textsearch_jaの現状のインストールスクリプトだと CREATE FUNCTION ts_ja_start(internal, int4) RET…

日本語正規化+pg_trgm

組み合わせ方法 とりあえず、pg_trgmと日本語正規化の組み合わせを検証してみた。 仕掛けはそんなに難しい話ではなく、日本語の正規化を行う関数(pg_ntext_normalize)をSQL関数として公開し、その関数を使って、pg_trgmインデクスを張る列を関数インデクスと…

pg_trgmのsimilarity関数

ntext型の近似検索用に自作で文字列間の類似度を評価する関数(pg_similar_rate)を作成していたけど、pg_trgm EXTENSIONにも似たような機能の関数(similarity)があるので比較してみた。 foo=# SELECT similarity('フィロストラトス' ,'ほげほげほげ'); simila…

鯖江市が行政データ「XML」形式で提供

http://www.chunichi.co.jp/article/fukui/20130115/CK2013011502000018.html 「行政データを自由に加工できる形で公開したのは、鯖江市が全国で初めてだ」ほう。 全国初というのはちょっと意外な気がした。まあ、折角なのでPostgreSQLのXML型のサンプルデー…

pg_trgmの類似度算出関数

pg_trgmの類似度算出関数 正規化テキスト型 ntext を全文検索系と連携させてみようと思い、pg_trgmを調べてみたらpg_trgmにも類似度算出を行うっぽい similarity関数があったのね・・・。 もしかすると、この関数をうまく使うとpg_trgm検索でもスコアっぽい…

ntext型実装つづき

機能拡張 正規化テキスト型ntext型の機能をちょっと拡張してみた。 半角カタカナ対応 近似検索 半角カタカナ対応 方式は別に難しくはないが、若干面倒な部分があったので実装するのは後回しにしていたが、今日ちょっと時間がとれたので実装してみた。 面倒な…

ntext型プロトタイプ

年末年始休暇の宿題だった、PostgreSQL用の日本語正規化テキスト型 ntext のプロトタイプができた。 とりあえずこんな感じで動作するところまではできた。 動作例 \dx コマンドでEXTENSION内容を表示。英語が正しいのかどうかは知らん。 ntext=# \dx ntext L…