MongoDB2.4で全文検索

2013-04-02T00:00:00+00:00 MongoDB

まぁ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" }

という事になる模様。まぁコレクションが存在しないので上記のエラーになってますが

mocha+webdriverjs(+selenium)でテスト chrome.pageLauncher