Kouhei Sutou
null+****@clear*****
Mon Apr 18 12:40:09 JST 2016
Kouhei Sutou 2016-04-18 12:40:09 +0900 (Mon, 18 Apr 2016) New Revision: ec10497e7541859290caf04a8bb16fb42b6f44eb https://github.com/groonga/groonga.org/commit/ec10497e7541859290caf04a8bb16fb42b6f44eb Message: blog: add PGroonga 1.0.6 release announce Added files: ja/_posts/2016-04-15.pgroonga-1.0.6.md Added: ja/_posts/2016-04-15.pgroonga-1.0.6.md (+176 -0) 100644 =================================================================== --- /dev/null +++ ja/_posts/2016-04-15.pgroonga-1.0.6.md 2016-04-18 12:40:09 +0900 (2664e3c) @@ -0,0 +1,176 @@ +--- +layout: post.ja +title: PGroonga(ぴーじーるんが) 1.0.6リリース +description: PGroonga(ぴーじーるんが) 1.0.6をリリースしました! +--- + +## PGroonga(ぴーじーるんが) 1.0.6リリース + +PostgreSQLからGroongaを使えるようにする[PGroonga](http://pgroonga.github.io/ja/)の1.0.6をリリースしました! + +新規ユーザーの方は、PGroonga 1.0.0のリリースアナウンスの[PGroongaについて](/ja/blog/2015/10/29/pgroonga-1.0.0.html#pgroonga)も参照してください。 + +## 変更点 + +1.0.3からの変更点は次の通りです。 + + * [Windows] DLLにバージョン情報を含めるようにしました。 + * [`pgroonga.text_full_text_search_ops_v2`オペレータークラス] 類似文書検索を行う演算子 `&~?` を追加しました。 + * [`pgroonga.text_term_search_ops_v2`オペレータークラス] 前方一致検索を行う演算子 `&^` を追加しました。 + * [`pgroonga.text_term_search_ops_v2`オペレータークラス] [前方一致RK検索](http://groonga.org/ja/docs/reference/operations/prefix_rk_search.html)を行う演算子 `&^~` を追加しました。 + * [Windows] バンドルするGroongaを6.0.1にアップグレードしました。 + * [Windows] ビルド対象のPostgreSQLを9.5.2にアップグレードしました。 + * [Windows] Visual Studio 2015ではなく2013を使ってビルドするようにしました。PostgreSQLのバイナリーが2013でビルドされていることに気づいたためです。 + +### 前方一致検索・前方一致RK検索 + +今回のリリースでは`pgroonga.text_term_search_ops_v2`オペレータークラスを追加しました。このオペレータークラスを使うと前方一致検索・前方一致RK検索を使うことができます。これらの検索は検索欄での入力補完を実現する場合に有用です。 + +タグを入力補完する例を使って簡単に使い方を説明します。 + +まず、タグ名とタグのヨミガナを登録します。 + +```sql +CREATE TABLE tags ( + name text PRIMARY KEY +); + +CREATE TABLE tag_readings ( + tag_name text + REFERENCES tags ON DELETE CASCADE ON UPDATE CASCADE, + katakana text, + PRIMARY KEY (tag_name, katakana) +); + +INSERT INTO tags VALUES ('PostgreSQL'); +INSERT INTO tags VALUES ('Groonga'); +INSERT INTO tags VALUES ('PGroonga'); +INSERT INTO tags VALUES ('pglogical'); + +INSERT INTO tag_readings VALUES ('PostgreSQL', 'ポストグレスキューエル'); +INSERT INTO tag_readings VALUES ('PostgreSQL', 'ポスグレ'); +INSERT INTO tag_readings VALUES ('Groonga', 'グルンガ'); +INSERT INTO tag_readings VALUES ('PGroonga', 'ピージールンガ'); +INSERT INTO tag_readings VALUES ('pglogical', 'ピージーロジカル'); +``` + +タグ名とタグのヨミガナにインデックスを作ります。`tags.name`と`tag_readings.katakana`に`pgroonga.text_term_search_ops_v2`オペレータークラスを使っていることがポイントです。 + +```sql +CREATE INDEX pgrn_tags_index ON tags + USING pgroonga (name pgroonga.text_term_search_ops_v2); +CREATE INDEX pgrn_tag_readings_index ON tag_readings + USING pgroonga (katakana pgroonga.text_term_search_ops_v2); +``` + +タグ名そのもの(`PostgreSQL`や`Groonga`)に対して前方一致検索をするには次のようにします。 + +```sql +SELECT name + FROM tags + WHERE name &^ 'pos'; +-- name +-- ------------ +-- PostgreSQL +-- (1 row) +``` + +タグをローマ字で検索するには次のようにします。 + +```sql +SELECT tag_name, katakana + FROM tag_readings + WHERE katakana &^~ 'pos'; +-- tag_name | katakana +-- ------------+------------------------ +-- PostgreSQL | ポスグレ +-- PostgreSQL | ポストグレスキューエル +-- (2 rows) +``` + +`UNION`すると結果をまとめて取得できます。 + +```sql +SELECT name + FROM tags + WHERE name &^ 'pos' +UNION +SELECT tag_name + FROM tag_readings + WHERE katakana &^~ 'pos'; +-- name +-- ------------ +-- PostgreSQL +-- (1 row) +``` + +「`pi-ji-`」で検索すると次のようになります。 + +```sql +SELECT name + FROM tags + WHERE name &^ 'pi-ji-' +UNION +SELECT tag_name + FROM tag_readings + WHERE katakana &^~ 'pi-ji-'; +-- name +-- ----------- +-- PGroonga +-- pglogical +-- (2 rows) +``` + +PostgreSQLを使って入力補完も実現できると、さらにPostgreSQLを有効活用できますね。 + +1.0.6をリリースした後に、次のように使えると便利そうだと気づきました。次のリリースではもっと便利になる予定です。ご期待ください。 + +```sql +CREATE TABLE tags ( + name text PRIMARY KEY, + readings text[] +); + +CREATE INDEX pgrn_tags_index ON tags + USING pgroonga (name pgroonga.text_term_search_ops_v2, + readings pgroonga.text_array_term_search_ops_v2); + +INSERT INTO tags VALUES ('PostgreSQL', ARRAY['ポストグレスキューエル', 'ポスグレ']); +INSERT INTO tags VALUES ('Groonga', ARRAY['グルンガ']); +INSERT INTO tags VALUES ('PGroonga', ARRAY['ピージールンガ']); +INSERT INTO tags VALUES ('pglogical', ARRAY['ピージーロジカル']); + +SELECT name + FROM tags + WHERE name &^ 'pi-ji-' OR + readings &^~ 'pi-ji-'; +-- name +-- ----------- +-- PGroonga +-- pglogical +-- (2 rows) +``` + +## アップグレード方法 + +1.0.3、1.0.4、1.0.5と互換性があります。[アップグレード](http://pgroonga.github.io/ja/upgrade/)の「互換性がある場合」用の手順でアップグレードしてください。 + +ただし、最後に`_v2`がついているオペレータークラス(`pgroonga.text_full_text_search_ops_v2`など)を使っている場合は互換性がないので、その場合は「非互換の場合」の手順でアップグレードしてください。 + +## おしらせ + +PGroongaだけでなく全文検索についても興味がある方は「Groongaで学ぶ全文検索」への参加もご検討ください。「Groongaで学ぶ全文検索」は予習・復習なしで全文検索を学ぶ、参加者に合わせて内容を決める、という限られた時間内でできるだけ実りある時間にしようというスタイルの勉強会です。全文検索を学びたい!という方はご活用ください。開催日程は[DoorkeeperのGroongaコミュニティのページ](https://groonga.doorkeeper.jp/)を参照してください。 + +次回は4月22日に開催です。 + + * 4/22(金) [Groongaで学ぶ全文検索 2016-04-22](https://groonga.doorkeeper.jp/events/41978) + +少し先になりますが、6月9日には[MySQLとPostgreSQLと日本語全文検索2を開催]({% post_url 2016-04-12-mysql-and-postgresql-and-japanese-full-text-search-announce %})します。PGroongaに関する情報もあるのでぜひご参加ください。[VVAULT AUDIT](http://vvault.jp/product/vvault-audit/index.html)というログ管理ソフトウェアでのPGroongaの利用事例の紹介もある予定です。 + + * [MySQLとPostgreSQLと日本語全文検索2](https://groonga.doorkeeper.jp/events/41770) + +## まとめ + +PGroongaの新しいリリースを紹介しました。 + +PostgreSQLで高速に日本語全文検索をしたいという方はPGroongaを使ってガンガン検索してください! -------------- next part -------------- HTML����������������������������...Download