[Groonga-commit] pgroonga/pgroonga.github.io at 86aa136 [master] Translate

Back to archive index

Kouhei Sutou null+****@clear*****
Sat Oct 10 21:31:39 JST 2015


Kouhei Sutou	2015-10-10 21:31:39 +0900 (Sat, 10 Oct 2015)

  New Revision: 86aa1360615793ea6765a8b6c1ddfd01455b3bc4
  https://github.com/pgroonga/pgroonga.github.io/commit/86aa1360615793ea6765a8b6c1ddfd01455b3bc4

  Message:
    Translate

  Modified files:
    reference/functions/pgroonga-command.md
    reference/functions/pgroonga-table-name.md
    tutorial/index.md

  Modified: reference/functions/pgroonga-command.md (+91 -3)
===================================================================
--- reference/functions/pgroonga-command.md    2015-10-08 23:16:42 +0900 (cc8f4c1)
+++ reference/functions/pgroonga-command.md    2015-10-10 21:31:39 +0900 (6027283)
@@ -5,16 +5,104 @@ layout: en
 
 # `pgroonga.command` function
 
+## Summary
+
 `pgroonga.command` function executes a [Groonga command](http://groonga.org/docs/reference/command.html) and returns the result as `text` type value.
 
-Here is `pgroonga.command` signature:
+## Syntax
+
+Here is the syntax of this function:
 
 ```text
-pgroonga.command(command)
+text pgroonga.command(command)
 ```
 
 `command` is a `text` type value. `pgroonga.command` executes `command` as a Groonga command.
 
 Groonga command returns result as JSON. `pgroonga.command` returns the JSON as `text` type value. You can use [JSON functions and operations provided by PostgreSQL](http://www.postgresql.org/docs/current/static/functions-json.html) by casting the result to `json` or `jsonb` type.
 
-See also [examples in tutorial](../../tutorial/#groonga).
+## Usage
+
+See [examples in tutorial](../../tutorial/#groonga).
+
+{: #attention}
+
+## Attention for `select` Groonga command
+
+You need to take care about invalid records when you use [`select` Groonga command](http://groonga.org/docs/reference/commands/select.html).
+
+You may get invalid records when PGroonga index target table processed one or more `DELETE` or `UPDATE` after last `VACUUM`. There are deleted and/or old records exist in Groonga table for the case. If there are deleted or old records, `select` Groonga command may return them.
+
+The followings show this case by example.
+
+Here is the result before updating. There are 3 records:
+
+```sql
+SELECT *
+  FROM json_array_elements(
+         pgroonga.command('select ' ||
+                          pgroonga.table_name('pgroonga_terms_index')
+                         )::json->1->0);
+--                                                    value                                                   
+-- -----------------------------------------------------------------------------------------------------------
+--  [3]
+--  [["_id","UInt32"],["_key","UInt64"],["content","LongText"],["tag","ShortText"],["title","LongText"]]
+--  [1,1,"PostgreSQLはリレーショナル・データベース管理システムです。","PostgreSQL","PostgreSQL"]
+--  [2,2,"Groongaは日本語対応の高速な全文検索エンジンです。","Groonga","Groonga"]
+--  [3,3,"PGroongaはインデックスとしてGroongaを使うためのPostgreSQLの拡張機能です。","PostgreSQL","PGroonga"]
+-- (5 行)
+```
+
+Update 1 record:
+
+```sql
+UPDATE terms
+   SET title = 'Mroonga',
+       content = 'MroongaはGroongaをバックエンドにしたMySQLのストレージエンジンです。',
+       tag = 'MySQL'
+ WHERE id = 3;
+```
+
+Executes `select` Groonga command again. It returns 4 records. 1 record is added because there is the record before updating:
+
+```sql
+SELECT *
+  FROM json_array_elements(
+         pgroonga.command('select ' ||
+                          pgroonga.table_name('pgroonga_terms_index')
+                         )::json->1->0);
+--                                                    value                                                   
+-- -----------------------------------------------------------------------------------------------------------
+--  [4]
+--  [["_id","UInt32"],["_key","UInt64"],["content","LongText"],["tag","ShortText"],["title","LongText"]]
+--  [1,1,"PostgreSQLはリレーショナル・データベース管理システムです。","PostgreSQL","PostgreSQL"]
+--  [2,2,"Groongaは日本語対応の高速な全文検索エンジンです。","Groonga","Groonga"]
+--  [3,3,"PGroongaはインデックスとしてGroongaを使うためのPostgreSQLの拡張機能です。","PostgreSQL","PGroonga"]
+--  [4,4,"MroongaはGroongaをバックエンドにしたMySQLのストレージエンジンです。","MySQL","Mroonga"]
+-- (6 行)
+```
+
+The old record is deleted when `VACUUM` is executed.
+
+Execute `VACUUM` explicitly. And then execute `select` Groonga command again. It returns 3 records. There isn't the old record:
+
+```sql
+VACUUM;
+SELECT *
+  FROM json_array_elements(
+         pgroonga.command('select ' ||
+                          pgroonga.table_name('pgroonga_terms_index')
+                         )::json->1->0);
+--                                                 value                                                 
+-- ------------------------------------------------------------------------------------------------------
+--  [3]
+--  [["_id","UInt32"],["_key","UInt64"],["content","LongText"],["tag","ShortText"],["title","LongText"]]
+--  [1,1,"PostgreSQLはリレーショナル・データベース管理システムです。","PostgreSQL","PostgreSQL"]
+--  [2,2,"Groongaは日本語対応の高速な全文検索エンジンです。","Groonga","Groonga"]
+--  [4,4,"MroongaはGroongaをバックエンドにしたMySQLのストレージエンジンです。","MySQL","Mroonga"]
+-- (5 行)
+```
+
+## See also
+
+  * [Examples in tutorial](../../tutorial/#groonga).

  Modified: reference/functions/pgroonga-table-name.md (+22 -77)
===================================================================
--- reference/functions/pgroonga-table-name.md    2015-10-08 23:16:42 +0900 (ccad278)
+++ reference/functions/pgroonga-table-name.md    2015-10-10 21:31:39 +0900 (1641b64)
@@ -5,9 +5,25 @@ layout: en
 
 # `pgroonga.table_name` function
 
-TODO
+## Summary
 
-You can use weight feature by `select` command.
+`pgroonga.table_name` function converts PGroonga index name to Groonga table name. Groonga table name is useful [`select` Groonga command](http://groonga.org/docs/reference/commands/select.html) by [`pgroonga.command` function](pgroonga-command.html).
+
+You can use weight feature by `select` Groonga command.
+
+## Syntax
+
+Here is the syntax of this function:
+
+```text
+text pgroonga.table_name(pgroonga_index_name)
+```
+
+`pgroonga_index_name` is a `text` type value. It's an index name to be converted to Groonga table name. The index should be created with `USING pgroonga`.
+
+`pgroonga.table_name` returns Groonga table name for `pgroonga_index_name` as `text` type value. If `pgroonga_index_name` doesn't exist or isn't a PGroonga index, `pgroonga.table_name` raises an error.
+
+## Usage
 
 Here are sample schema and data. In the schema, both search target data and output data are index target columns:
 
@@ -82,80 +98,9 @@ SELECT *
 -- (2 rows)
 ```
 
-`select` command in Groonga may help you when `SELECT` statement in SQL is slow.
-
-
-# Attention
-
-レコードを削除・更新している場合は、Groongaのデータベースには削除済み・
-更新前のデータが残っています。
-
-まず、更新前の状態を確認します。レコードは3つです。
-
-```sql
-SELECT *
-  FROM json_array_elements(
-         pgroonga.command('select ' ||
-                          pgroonga.table_name('pgroonga_terms_index')
-                         )::json->1->0);
---                                                    value                                                   
--- -----------------------------------------------------------------------------------------------------------
---  [3]
---  [["_id","UInt32"],["_key","UInt64"],["content","LongText"],["tag","ShortText"],["title","LongText"]]
---  [1,1,"PostgreSQLはリレーショナル・データベース管理システムです。","PostgreSQL","PostgreSQL"]
---  [2,2,"Groongaは日本語対応の高速な全文検索エンジンです。","Groonga","Groonga"]
---  [3,3,"PGroongaはインデックスとしてGroongaを使うためのPostgreSQLの拡張機能です。","PostgreSQL","PGroonga"]
--- (5 行)
-```
-
-更新します。
-
-```sql
-UPDATE terms
-   SET title = 'Mroonga',
-       content = 'MroongaはGroongaをバックエンドにしたMySQLのストレージエンジンです。',
-       tag = 'MySQL'
- WHERE id = 3;
-```
-
-再度`select`コマンドを実行するとレコードが1つ増えて4つになっています。
-これは更新前のレコードも残っているからです。
-
-```sql
-SELECT *
-  FROM json_array_elements(
-         pgroonga.command('select ' ||
-                          pgroonga.table_name('pgroonga_terms_index')
-                         )::json->1->0);
---                                                    value                                                   
--- -----------------------------------------------------------------------------------------------------------
---  [4]
---  [["_id","UInt32"],["_key","UInt64"],["content","LongText"],["tag","ShortText"],["title","LongText"]]
---  [1,1,"PostgreSQLはリレーショナル・データベース管理システムです。","PostgreSQL","PostgreSQL"]
---  [2,2,"Groongaは日本語対応の高速な全文検索エンジンです。","Groonga","Groonga"]
---  [3,3,"PGroongaはインデックスとしてGroongaを使うためのPostgreSQLの拡張機能です。","PostgreSQL","PGroonga"]
---  [4,4,"MroongaはGroongaをバックエンドにしたMySQLのストレージエンジンです。","MySQL","Mroonga"]
--- (6 行)
-```
-
-削除されたレコードは`VACUUM`時に削除されます。明示的に`VACUUM`を実行す
-ると更新前のレコードがなくなって、レコード数は3つになります。
+`select` Groonga command may help you when `SELECT` statement in SQL is slow.
 
-```sql
-VACUUM
-SELECT *
-  FROM json_array_elements(
-         pgroonga.command('select ' ||
-                          pgroonga.table_name('pgroonga_terms_index')
-                         )::json->1->0);
---                                                 value                                                 
--- ------------------------------------------------------------------------------------------------------
---  [3]
---  [["_id","UInt32"],["_key","UInt64"],["content","LongText"],["tag","ShortText"],["title","LongText"]]
---  [1,1,"PostgreSQLはリレーショナル・データベース管理システムです。","PostgreSQL","PostgreSQL"]
---  [2,2,"Groongaは日本語対応の高速な全文検索エンジンです。","Groonga","Groonga"]
---  [4,4,"MroongaはGroongaをバックエンドにしたMySQLのストレージエンジンです。","MySQL","Mroonga"]
--- (5 行)
-```
+## See also
 
-Groongaのデータを直接使うときは気をつけてください。
+  * [`pgroonga.table_name` function description in tutorial](../../tutorial/#pgroonga-table-name).
+  * [Attention when you use `select` Groonga command](pgroonga-command.html#attention).

  Modified: tutorial/index.md (+4 -2)
===================================================================
--- tutorial/index.md    2015-10-08 23:16:42 +0900 (ff6e14b)
+++ tutorial/index.md    2015-10-10 21:31:39 +0900 (666ce5b)
@@ -781,11 +781,13 @@ SELECT * FROM json_each(pgroonga.command('status')::json->1);
 
 See [`pgroonga.command` function](../reference/functions/pgroonga-command.html) for more details.
 
+{: #pgroonga-table-name}
+
 ### `pgroonga.table_name` function
 
-PGroonga stores values of index target columns. You can use these values to search and output by Groonga's [select command](http://groonga.org/docs/reference/commands/select.html).
+PGroonga stores values of index target columns. You can use these values to search and output by [`select` Groonga command](http://groonga.org/docs/reference/commands/select.html).
 
-`select` command table name in Groonga. You can use `pgroonga.table_name` function to convert index name in PostgreSQL to table name in Groonga.
+`select` Groonga command needs table name. You can use `pgroonga.table_name` function to convert index name in PostgreSQL to table name in Groonga.
 
 Here is an example to use `select` command with `pgroonga.table_name` function:
 
-------------- next part --------------
HTML����������������������������...
Download 



More information about the Groonga-commit mailing list
Back to archive index