2009年3月アーカイブ

今日で平成20年度もおしまい。明日から、社会人になって21年目!の新しい一年が始まる。来年度は、結果を残す一年にする。そのために必要なものを支えにして進んでいくよ。

ちょっと川のほうの様子を見てくるか。

スタートしたね。去年は10km走ったんだよなあ。楽しかったなあ。130番がんばれ!

(追記)

ゴールシーンは大爆笑だったよ。高田さんありがとう!!

最近ちょこちょことLudiaを試している。難しいことをやってるわけではなく、基本的な使い方を学んでいるレベルなんだけど。そんななかでちょっとハマったのが、PostgreSQLのバージョンによって検索時の演算子が変更されること。最初に構築した環境がPostgreSQL-8.1.3+Ludia-1.5.1+Senna-1.1.4だったんだけど、この環境で動いていたプログラムが、PostgreSQL-8.3.3で構築した環境では正しく動作しなくなった。具体的には、英単語の部分一致検索をするためにludia.sen_index_flags=31(NORMALIZE|SPLIT_ALPHA|SPLIT_DIGIT|SPLIT_SYMBOL|NGRAM)で構築したfulltextuインデックスを使って@@演算子による検索を行ったとき、PostgreSQL-8.1.3では意図したとおりに動作するのに8.3.3では部分一致がヒットしないという現象がおきた。原因は上に書いたとおり、Ludiaが使用する演算子が@@から%%に変更されたためなんだけど、これがわかりにくいのは、なんにせよ検索処理自体はそれっぽく機能してしまうってことにある。Ludiaの演算子が変更された理由は、PostgreSQL-8.3からtextsearchが標準機能に組み込まれて@@演算子がそちらで使われることになったからだと思う。つまり、PostgreSQL-8.3で意図した検索結果が得られなかったのは、Ludiaではなくtextsearchによる検索が動いていたからなわけだ。それに、後方互換性のためだと思うが、8.3以前のPostgreSQLとLudia-1.5.1を組み合わせたときに@@演算子が使えてしまうことも問題をややこしくしていると感じる。WWW上の情報、例えばThinkITの連載を見ても「@@演算子で検索を行う」と書かれていて、このへんの記事を見ながら最近のPostgreSQLを使ってLudiaを導入して、Ludiaで検索しているつもりが実はtextsearchを使っていた...なんて人は、けっこう出てくるんじゃないかな、とちょっと心配。そんなドジがおれだけならいいけど。これを調べるのにけっこう時間をとられちゃったんだよなあ。まあなんにせよ、ドキュメントをよく読めばわかることだから、なにかやるときにはちゃんと最新のドキュメントに目を通しましょう、ということかな。

以前に書いた、NB100上のFreeBSDでcsupしてmake buildworldしたときにソースファイルが壊れる現象について、もしかして交換したメモリが悪いのではないかと思っていたのだが、昨日ちょっと時間があったので、元のメモリに戻して同じことを試してみた。その結果、make buildworldは無事に終了した。う〜ん、これはやっぱりメモリの不良かなあ。さてどうしよ。とりあえず容量的には元の1GBでも困らないのでしばらくはこのまま使うとして、メモリは交換してもらうか買い換えるか。Windowsで再現可能な障害があれば話が早いんだけど。あとで保証の内容を確認してみよっと。

最近のコメント