関連プロジェクトコミュニティサポートブログ開発者向け情報EnglishBloGroonga2013-03-29今日は肉の日ですね。インストールはじめに、利用事例の記事を書いてくれる人募集のお知らせです。groonga関連の記事を書くという企画が進行しています。groongaを知らない人にもWeb記事を通じて知ってもらいたいというのが動機です。実際に使っているユーザーのみなさんに書いてもらえたらいいなぁと思っています!すでに何人かの方に応募いただいていますが、まだまだ募集中です。関数のサポートを追加しました。いった場合にこの関数を使うと便利なのかを具体例で紹介します。お題は「ブログエントリの特定のコメントを抽出する」です。この例で使用するスキーマ定義は以下の通りです。contentBlogテーブルにはCommentテーブルを関連づけています。全文検索用のLexiconテーブルを用意しています。例で使用するサンプルデータは以下の通りです。]例えば、Aさんがgroongaについてコメントしたブログエントリのタイトルを抽出したいとしましょう。Aさんのコメントは以下のようにして抽出することができます。]Aさんはgroongaとmroongaについてコメントしていることがわかります。AさんがgroongaについてコメントしているエントリをBlogテーブルから探してみましょう。AさんがコメントしているエントリをBlogテーブルから探してみます。blog"に対してコメントしていることがわかりました。AさんがgroongaについてコメントしているエントリをBlogテーブルから探してみましょう。コメント本文に対する条件を追加して検索してみます。]条件を追加しているのに、結果は同じになりました。blog"にはAさんがコメントしてはいますが、"groonga"ではなく"mroonga"についてです。これは意図した結果ではありません。いうことなのでしょうか。"groonga""実は、上記の条件を処理するときに、groongaでは以下のようにして判定しています。Commentテーブルに"groonga"があるのでマッチそれぞれどれかひとつでもマッチしているかどうか、を見ています。blog"エントリが抽出されています。Aさんがgroongaについてコメントしたエントリを抽出することでした。blog"だけが抽出されるというのが期待する結果です。具体的に言うとCommentテーブルの以下のコメントデータを含むBlogテーブルのエントリを抽出したいわけです。"groonga"},この場合にCommentテーブルのnameカラムとcontentカラムにおいて、どれかひとつでもマッチしているものがあるかどうかで評価されるのは都合が良くありません。コンテキストで絞り込むことができます。使うと上記目的に合致するクエリを以下のように書くことができます。"groonga"")'実行結果は以下のようになります。]これで、意図した通り、Aさんがgroongaについてコメントしているエントリのみを抽出することができました。関数でのクエリ展開をサポートしました。クエリ展開と重みづけの指定ができます。コマンドでサポートしたことで、複数のクエリごとに異なる重みづけを指定することができるようになりました。同じようには複数の全文検索を行うことができませんでした。できていたクエリ展開と重みづけを複数の全文検索でも利用できるようになりました。関数の構文は以下のようにカラムとクエリを受けつけるものでした。一緒に使えるようになりました。(置換テーブルを指定することもできます。