Groonga 8.1.1リリース
Groonga 8.1.1をリリースしました!
それぞれの環境毎のインストール方法: インストール
お知らせ
株式会社セナネットワークス様が、メーリングリスト(groonga-dev)と Groonga・Mroonga・PGroongaのサイトを検索するサービスを作ってくれました!
Sagroonga(さぐるんが)と言います。 PGroonga使って作ってあります。
Groonga・Mroonga・PGroongaのサイトの右上に検索ボックスをつけてあります。 その検索ボックスで検索すると、このSagroongaを使って検索するようになっています。
ぜひご活用ください!
変更内容
主な変更点は以下の通りです。
-
logical_select 新しい引数
--load_table
、--load_columns
、--load_values
を追加しました。 -
groonga実行ファイル 新しいオプション
--log-flags
を追加しました。 -
インデックスの更新エラー発生時にメモリリークする問題を修正しました。
-
ノーマライザー ステートレスなノーマライザーとステートフルなノーマライザーを同時に使用した時に、それらが誤った結果を返すバグを修正しました。
-
ステートレスなノーマライザーとは、以下です。
unify_kana
unify_kana_case
unify_kana_voiced_sound_mark
unify_hyphen
unify_prolonged_sound_mark
unify_hyphen_and_prolonged_sound_mark
unify_middle_dot
-
ステートフルなノーマライザーとは、以下です。
unify_katakana_v_sounds
unify_katakana_bu_sound
unify_to_romaji
-
logical_select 新しい引数 --load_table
、 --load_columns
、 --load_values
を追加しました。
logical_select
の結果を --load_table
で指定したテーブルへ格納できます。
--load_values
オプションは、 logical_select
の結果のカラムを指定します。
--load_columns
オプションは、 --load_table
で指定したテーブルのカラムを指定します。
このようにして、--load_values
で指定したカラムの値を、 --load_columns
で指定したカラムへ格納できます。
例えば以下のように、 --load_table
で指定したLogsテーブルに logical_select
の結果の_id
と timestamp
を格納できます。
table_create Logs_20150203 TABLE_HASH_KEY ShortText
column_create Logs_20150203 timestamp COLUMN_SCALAR Time
table_create Logs_20150204 TABLE_HASH_KEY ShortText
column_create Logs_20150204 timestamp COLUMN_SCALAR Time
table_create Logs TABLE_HASH_KEY ShortText
column_create Logs original_id COLUMN_SCALAR UInt32
column_create Logs timestamp_text COLUMN_SCALAR ShortText
load --table Logs_20150203
[
{
"_key": "2015-02-03:1",
"timestamp": "2015-02-03 10:49:00"
},
{
"_key": "2015-02-03:2",
"timestamp": "2015-02-03 12:49:00"
}
]
load --table Logs_20150204
[
{
"_key": "2015-02-04:1",
"timestamp": "2015-02-04 00:00:00"
}
]
logical_select \
--logical_table Logs \
--shard_key timestamp \
--load_table Logs \
--load_columns "original_id, timestamp_text" \
--load_values "_id, timestamp"
[
[
0,
0.0,
0.0
],
[
[
[
3
],
[
[
"_id",
"UInt32"
],
[
"_key",
"ShortText"
],
[
"timestamp",
"Time"
]
],
[
1,
"2015-02-03:1",
1422928140.0
],
[
2,
"2015-02-03:2",
1422935340.0
],
[
1,
"2015-02-04:1",
1422975600.0
]
]
]
]
select --table Logs
[
[
0,
0.0,
0.0
],
[
[
[
3
],
[
[
"_id",
"UInt32"
],
[
"_key",
"ShortText"
],
[
"original_id",
"UInt32"
],
[
"timestamp_text",
"ShortText"
]
],
[
1,
"2015-02-03:1",
1,
"1422928140000000"
],
[
2,
"2015-02-03:2",
2,
"1422935340000000"
],
[
3,
"2015-02-04:1",
1,
"1422975600000000"
]
]
]
]
groonga実行ファイル 新しいオプション --log-flags
を追加しました。
Groongaのログに出力する項目を指定できます。
以下のような項目を出力できます。
- タイムスタンプ
- ログメッセージ
- ロケーション(ログが出力された場所)
- プロセスID
- スレッドID
以下のように接頭辞を指定できます。
-
+
- この接頭辞は、"フラグを追加する"という意味です。
-
-
- この接頭辞は、"フラグを削除する"という意味です。
-
接頭辞無しは、"存在するフラグを置き換える"という意味です。
具体的には、以下のようにフラグを指定できます。
-
none
- ログに何も出力しません。
-
time
- ログにタイムスタンプを出力します。
-
message
- ログにメッセージを出力します。
-
location
- ログの出力場所(ファイル名、行数、関数名)とプロセスIDを出力します。
-
process_id
- ログにプロセスIDを出力します。
-
pid
- このフラグは、
process_id
のエイリアスです。
- このフラグは、
-
thread_id
- ログにスレッドIDをを出力します。
-
all
- このフラグは、
none
とdefault
フラグ以外の全てのフラグを指定します。
- このフラグは、
-
default
- ログにタイムスタンプとメッセージを出力します。
|
を使って、複数のログフラグを指定することもできます。
例えば以下のように、プロセスIDとスレッドIDを追加で出力できます。
実行コマンド
% groonga --log-path groonga.log --log-flags "+pid|+thread_id" db/test.db
結果のフォーマット
Timestamp|Log level|process id|thread id: Log message
結果
2019-01-29 08:53:03.587000|n|2344|3228: grn_init: <8.1.1-xx-xxxxxxxx>
さいごに
8.1.0からの詳細な変更点は8.1.1リリース 2019-01-29を確認してください。
それでは、Groongaでガンガン検索してください!