Kouhei Sutou
null+****@clear*****
Thu Jun 2 11:35:49 JST 2016
Kouhei Sutou 2016-06-02 11:35:49 +0900 (Thu, 02 Jun 2016) New Revision: 52c67d90ae7b7bc3864d64129a11545d0f482890 https://github.com/groonga/groonga.org/commit/52c67d90ae7b7bc3864d64129a11545d0f482890 Message: PGroogna 1.0.9 has been released!!! Added files: en/_posts/2016-06-02-pgroonga-1.0.9.md ja/_posts/2016-06-02-pgroonga-1.0.9.md Added: en/_posts/2016-06-02-pgroonga-1.0.9.md (+115 -0) 100644 =================================================================== --- /dev/null +++ en/_posts/2016-06-02-pgroonga-1.0.9.md 2016-06-02 11:35:49 +0900 (3a13e34) @@ -0,0 +1,115 @@ +--- +layout: post.en +title: PGroonga 1.0.9 has been released +description: PGroonga 1.0.9 has been released! +--- + +## PGroonga 1.0.9 has been released + +[PGroonga](http://pgroonga.github.io/) (píːzí:lúnɡά) 1.0.9 has been released! + +See [PGroonga 1.0.0 release announce]({% post_url 2015-10-29-pgroonga-1.0.0 %}) about PGroonga. + +## Changes + +Here are changes since 1.0.6: + + * [[Ubuntu](http://pgroonga.github.io/install/ubuntu.html)] Supported Xenial Xerus (16.04 LTS). + * Added [`pgroonga.highlight_html` function](http://pgroonga.github.io/reference/functions/pgroonga-highlight-html.html) that returns search keyword highlighted HTML. + * Added [`pgroonga.match_positions_byte` function](http://pgroonga.github.io/reference/functions/pgroonga-match-positions-byte.html) that returns locations of keywords in text. + * Added [`pgroonga.query_extract_keywords` function](http://pgroonga.github.io/reference/functions/pgroonga-query-extract-keywords.html) that extract keywords from query. + * [[Windows](http://pgroonga.github.io/install/windows.html)] Upgraded bundled Groonga to 6.0.3. + * [[Windows](http://pgroonga.github.io/install/windows.html)] Upgraded build target PostgreSQL to 9.5.3. + * [`pgroonga.text_array_term_search_ops_v2` operator class] Added [`&^>` operator](http://pgroonga.github.io/reference/operators/prefix-search-contain-v2.html) that performs prefix search against `text[]` type value. If any element is matched, the value is matched. + * [`pgroonga.text_array_term_search_ops_v2` operator class] Added [`&^~>` operator](http://pgroonga.github.io/reference/operators/prefix-rk-search-contain-v2.html) that performs [prefix RK search](http://groonga.org/docs/reference/operations/prefix_rk_search.html) against `text[]` type value. If any element is matched, the value is matched. + +### Prefix search and prefix RK search + +This release adds `pgroonga.text_array_term_search_ops_v2` operator class. You can use prefix search and prefix RK search against `text[]` type with this operator class. They are useful to implement input completion on search text box. + +The following description shows how to use prefix search and prefix RK search. The following description uses an example that implements tag name input completion. + +First, you need to insert tag names and tag readings. Tag readings should be in Katakana. + +```sql +CREATE TABLE tags ( + name text PRIMARY KEY, + readings text[] +); + +INSERT INTO tags VALUES ('PostgreSQL', ARRAY['ポストグレスキューエル', 'ポスグレ']); +INSERT INTO tags VALUES ('Groonga', ARRAY['グルンガ']); +INSERT INTO tags VALUES ('PGroonga', ARRAY['ピージールンガ']); +INSERT INTO tags VALUES ('pglogical', ARRAY['ピージーロジカル']); +``` + +You need to create indexes against tag names and tag readings. It's important that `pgroonga.text_array_term_search_ops_v2` operator class is used for `tags.readings`. + +```sql +CREATE INDEX pgroonga_tags_index ON tags + USING pgroonga (name pgroonga.text_term_search_ops_v2, + readings pgroonga.text_array_term_search_ops_v2); +``` + +Here is a `SELECT` to use prefix search against tag names such as `PostgreSQL` and `Groonga`: + +```sql +SELECT name + FROM tags + WHERE name &^ 'pos'; +-- name +-- ------------ +-- PostgreSQL +-- (1 row) +``` + +Here is a `SELECT` to search tags by [romanization of Japanese](https://en.wikipedia.org/wiki/Romanization_of_Japanese): + +```sql +SELECT name, readings + FROM tags + WHERE readings &^~> 'pos'; +-- name | readings +-- ------------+----------------------------------- +-- PostgreSQL | {ポストグレスキューエル,ポスグレ} +-- (1 row) +``` + +You can use `OR` to get both results: + +```sql +SELECT name, readings + FROM tags + WHERE name &^ 'pos' OR + readings &^~> 'pos'; +-- name | readings +-- ------------+----------------------------------- +-- PostgreSQL | {ポストグレスキューエル,ポスグレ} +-- (1 row) +``` + +Here is an example that searches by `pi-ji-`: + +```sql +SELECT name, readings + FROM tags + WHERE name &^ 'pi-ji-' OR + readings &^~> 'pi-ji-'; +-- name | readings +-- -----------+-------------------- +-- PGroonga | {ピージールンガ} +-- pglogical | {ピージーロジカル} +-- (2 rows) +``` + +If you can implement input completion by PostgreSQL, you can use PostgreSQL on more situations. + +## How to upgrade + +This version is compatible with 1.0.6, 1.0.7 and 1.0.8. Upgrade by steps in ["Compatible case" in Upgrade document](http://pgroonga.github.io/upgrade/#compatible-case). + +## Conclusion + +New PGroonga version has been released. + +Try PGroonga when you want to perform fast full text search against all languages on PostgreSQL! Added: ja/_posts/2016-06-02-pgroonga-1.0.9.md (+129 -0) 100644 =================================================================== --- /dev/null +++ ja/_posts/2016-06-02-pgroonga-1.0.9.md 2016-06-02 11:35:49 +0900 (7ef8e51) @@ -0,0 +1,129 @@ +--- +layout: post.ja +title: PGroonga(ぴーじーるんが) 1.0.9リリース +description: PGroonga(ぴーじーるんが) 1.0.9をリリースしました! +--- + +## PGroonga(ぴーじーるんが) 1.0.9リリース + +PostgreSQLからGroongaを使えるようにする[PGroonga](http://pgroonga.github.io/ja/)の1.0.9をリリースしました! + +新規ユーザーの方は、PGroonga 1.0.0のリリースアナウンスの[PGroongaについて](/ja/blog/2015/10/29/pgroonga-1.0.0.html#pgroonga)も参照してください。 + +## 変更点 + +1.0.6からの変更点は次の通りです。 + + * [[Ubuntu](http://pgroonga.github.io/ja/install/ubuntu.html)] Xenial Xerus(16.04 LTS)をサポートしました。 + * 検索キーワードをハイライトしたHTMLを返す[`pgroonga.highlight_html`関数](http://pgroonga.github.io/ja/reference/functions/pgroonga-highlight-html.html)を追加しました。 + * 検索キーワードが何バイト目に含まれているかを返す[`pgroonga.match_positions_byte`関数](http://pgroonga.github.io/ja/reference/functions/pgroonga-match-positions-byte.html)を追加しました。通常はこの関数を使う必要はありません。アプリケーション側で検索キーワードを処理したい場合に使います。 + * クエリーから検索キーワードを抽出する[`pgroonga.query_extract_keywords`関数](http://pgroonga.github.io/ja/reference/functions/pgroonga-query-extract-keywords.html)を追加しました。 + * [[Windows](http://pgroonga.github.io/ja/install/windows.html)] バンドルするGroongaを6.0.3にアップグレードしました。 + * [[Windows](http://pgroonga.github.io/ja/install/windows.html)] ビルド対象のPostgreSQLを9.5.3にアップグレードしました。 + * [`pgroonga.text_array_term_search_ops_v2`オペレータークラス] `text[]`型の値に対して前方一致検索を行う演算子[`&^>`](http://pgroonga.github.io/ja/reference/operators/prefix-search-contain-v2.html)を追加しました。要素のどれか1つでもマッチすればマッチしたことになります。 + * [`pgroonga.text_array_term_search_ops_v2`オペレータークラス] `text[]`型の値に対して[前方一致RK検索](http://groonga.org/ja/docs/reference/operations/prefix_rk_search.html)(ローマ字・ひらがな・カタカナ入力でカタカナデータを前方一致検索する検索)を行う演算子[`&^~>`](http://pgroonga.github.io/ja/reference/operators/prefix-rk-search-contain-v2.html)を追加しました。要素のどれか1つでもマッチすればマッチしたことになります。 + +### 前方一致検索・前方一致RK検索 + +今回のリリースでは`pgroonga.text_array_term_search_ops_v2`オペレータークラスを追加しました。このオペレータークラスを使うと`text[]`型に対して前方一致検索・前方一致RK検索を使うことができます。これらの検索は検索欄での入力補完を実現する場合に有用です。 + +タグを入力補完する例を使って簡単に使い方を説明します。 + +まず、タグ名とタグのヨミガナを登録します。 + +```sql +CREATE TABLE tags ( + name text PRIMARY KEY, + readings text[] +); + +INSERT INTO tags VALUES ('PostgreSQL', ARRAY['ポストグレスキューエル', 'ポスグレ']); +INSERT INTO tags VALUES ('Groonga', ARRAY['グルンガ']); +INSERT INTO tags VALUES ('PGroonga', ARRAY['ピージールンガ']); +INSERT INTO tags VALUES ('pglogical', ARRAY['ピージーロジカル']); +``` + +タグ名とタグのヨミガナにインデックスを作ります。`tags.readings`に`pgroonga.text_array_term_search_ops_v2`オペレータークラスを使っていることがポイントです。 + +```sql +CREATE INDEX pgroonga_tags_index ON tags + USING pgroonga (name pgroonga.text_term_search_ops_v2, + readings pgroonga.text_array_term_search_ops_v2); +``` + +タグ名そのもの(`PostgreSQL`や`Groonga`)に対して前方一致検索をするには次のようにします。 + +```sql +SELECT name + FROM tags + WHERE name &^ 'pos'; +-- name +-- ------------ +-- PostgreSQL +-- (1 row) +``` + +タグをローマ字で検索するには次のようにします。 + +```sql +SELECT name, readings + FROM tags + WHERE readings &^~> 'pos'; +-- name | readings +-- ------------+----------------------------------- +-- PostgreSQL | {ポストグレスキューエル,ポスグレ} +-- (1 row) +``` + +`OR`すると結果をまとめて取得できます。 + +```sql +SELECT name, readings + FROM tags + WHERE name &^ 'pos' OR + readings &^~> 'pos'; +-- name | readings +-- ------------+----------------------------------- +-- PostgreSQL | {ポストグレスキューエル,ポスグレ} +-- (1 row) +``` + +「`pi-ji-`」で検索すると次のようになります。 + +```sql +SELECT name, readings + FROM tags + WHERE name &^ 'pi-ji-' OR + readings &^~> 'pi-ji-'; +-- name | readings +-- -----------+-------------------- +-- PGroonga | {ピージールンガ} +-- pglogical | {ピージーロジカル} +-- (2 rows) +``` + +PostgreSQLを使って入力補完も実現できると、さらにPostgreSQLを有効活用できますね。 + +## アップグレード方法 + +1.0.6、1.0.7、1.0.8と互換性があります。[アップグレード](http://pgroonga.github.io/ja/upgrade/)の「互換性がある場合」用の手順でアップグレードしてください。 + +ただし、最後に`_v2`がついているオペレータークラス(`pgroonga.text_full_text_search_ops_v2`など)を使っている場合は互換性がないので、その場合は「非互換の場合」の手順でアップグレードしてください。 + +## おしらせ + +PGroongaだけでなく全文検索についても興味がある方は「Groongaで学ぶ全文検索」への参加もご検討ください。「Groongaで学ぶ全文検索」は予習・復習なしで全文検索を学ぶ、参加者に合わせて内容を決める、という限られた時間内でできるだけ実りある時間にしようというスタイルの勉強会です。全文検索を学びたい!という方はご活用ください。開催日程は[DoorkeeperのGroongaコミュニティのページ](https://groonga.doorkeeper.jp/)を参照してください。 + +次回は6月17日に開催です。 + + * [Groongaで学ぶ全文検索 2016-06-17](https://groonga.doorkeeper.jp/events/45556) + +また、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