MongoDB2.4で全文検索
まぁMongoDB2.4リリースでアナウンスがあったと思うのですが、2.4から全文検索が出来るようなインデックスが使えるようになった模様。 http://blog.serverdensity.com/full-text-search-in-mongodb を読めばやり方は分かると思いますが
- adminCommandでtextSearchEnabledを設定 (mongod --setParameter textSearchEnabled=trueでも可能らしい。公式ドキュメント上はそうなってる)
- データをぶっこむ
- db.ensureIndex({ "key": "text" })でインデックスを作る
- db.runCommand("text", { search: "query" })で検索する
っていう感じ。で日本語というかマルチバイトサポートされてるのかって所だと思うのですが、現状だとサポートはされてない模様( http://docs.mongodb.org/manual/reference/text-search/#text-search-languages&gsc.tab=0 )
ついでに公式ドキュメントなリンクも書いとく
http://docs.mongodb.org/manual/applications/text-search
http://docs.mongodb.org/manual/tutorial/search-for-text
まー、そんくらいですかね。今後に期待です
追記
textSearchEnabledオプションはmongodb.confに追加してもイケる模様
setParameter = textSearchEnabled=true
これで正しいのかは謎だけど、設定する前だと
db.sample.runCommand("text", { search: "AAA" })
// { "ok" : 0, "errmsg" : "text search not enabled" }
っていうのになるのに対し
db.sample.runCommand("text", { search: "AAA" })
// { "ok" : 0, "errmsg" : "can"t find ns" }
という事になる模様。まぁコレクションが存在しないので上記のエラーになってますが