Groonga 11.1.1リリース
Groonga 11.1.1をリリースしました!
それぞれの環境毎のインストール方法: インストール
変更内容
主な変更点は以下の通りです。
改良
-
select 組み合わせフレーズ近傍検索をサポートしました。
この機能は、
'*NP"..." OR *NP"..." OR ...'
の短縮形です。 例えば、以下のように、query
を使って*NP
を複数実行する式のかわりに*NPP
を使えます。query ("title * 10 || content", "*NP"a 1 x" OR *NP"a 1 y" OR *NP"a 1 z" OR *NP"a 2 x" OR *NP"a 2 y" OR *NP"a 2 z" OR *NP"a 3 x" OR *NP"a 3 y" OR *NP"a 3 z" OR *NP"b 1 x" OR *NP"b 1 y" OR *NP"b 1 z" OR *NP"b 2 x" OR *NP"b 2 y" OR *NP"b 2 z" OR *NP"b 3 x" OR *NP"b 3 y" OR *NP"b 3 z"")
この機能によって、上記の式を
*NPP"(a b) (1 2 3) (x y z)"
と書くことができます。 加えて、*NPP"(a b) (1 2 3) (x y z)"
は、'*NP"..." OR *NP"..." OR ...'
より高速です。query ("title * 10 || content", "*NPP"(a b) (1 2 3) (x y z)"")
この機能は、
'*NP"..." OR *NP"..." OR ...'
のような近傍フレーズ検索のパフォーマンスを改善するために実装されました。 -
select 順序付き組み合わせフレーズ近傍検索をサポートしました。
この機能は、
'*ONP"..." OR *ONP"..." OR ...'
の短縮形です。 例えば、以下のように、query
を使って*ONP
を複数実行する式のかわりに*ONPP
を使えます。query ("title * 10 || content", "*ONP"a 1 x" OR *ONP"a 1 y" OR *ONP"a 1 z" OR *ONP"a 2 x" OR *ONP"a 2 y" OR *ONP"a 2 z" OR *ONP"a 3 x" OR *ONP"a 3 y" OR *ONP"a 3 z" OR *ONP"b 1 x" OR *ONP"b 1 y" OR *ONP"b 1 z" OR *ONP"b 2 x" OR *ONP"b 2 y" OR *ONP"b 2 z" OR *ONP"b 3 x" OR *ONP"b 3 y" OR *ONP"b 3 z"")
この機能によって、上記の式を
*ONPP"(a b) (1 2 3) (x y z)"
と書くことができます。 加えて、*ONPP"(a b) (1 2 3) (x y z)"
は、'*ONP"..." OR *ONP"..." OR ...'
より高速です。query ("title * 10 || content", "*ONPP"(a b) (1 2 3) (x y z)"")
この機能は
'*ONP"..." OR *ONP"..." OR ...'
のような順序付き近傍フレーズ検索のパフォーマンスを改善するために実装されました。 -
request_cancel 検索実行中に
request_cancel
を検知しやすくしました。request_cancel
を検知するために、リターンコードのチェックを増やしたためです。 -
thread_dump 新しいコマンド
thread_dump
を追加しました。現状、このコマンドはWindowsでしか動作しません。 このコマンド実行時の全てのスレッドのバックトレースをNOTICEレベルのログとして出力できます。
この機能は、Groongaが応答を返さない等の問題を解決するのに役立ちます。
-
CentOS CentOS 8のサポートをやめました。
CentOS 8は、2021年12月31日でEOLとなるためです。
修正
-
無効なパラメータを持つインデックスカラムを削除できない問題を修正しました。
例えば、以下のように column_create を使って無効なインデックスカラムを作成した時、テーブルが削除できなくなります。
table_create Statuses TABLE_NO_KEY column_create Statuses start_time COLUMN_SCALAR UInt16 column_create Statuses end_time COLUMN_SCALAR UInt16 table_create Times TABLE_PAT_KEY UInt16 column_create Times statuses COLUMN_INDEX Statuses start_time,end_time # [ [ -22, 1639037503.16114, 0.003981828689575195, "grn_obj_set_info(): GRN_INFO_SOURCE: multi column index must be created with WITH_SECTION flag: <Times.statuses>", [ [ "grn_obj_set_info_source_validate", "../../groonga/lib/db.c", 9605 ], [ "/tmp/d.grn", 6, "column_create Times statuses COLUMN_INDEX Statuses start_time,end_time" ] ] ], false ] table_remove Times # [ [ -22, 1639037503.16515, 0.0005414485931396484, "[object][remove] column is broken: <Times.statuses>", [ [ "remove_columns", "../../groonga/lib/db.c", 10649 ], [ "/tmp/d.grn", 8, "table_remove Times" ] ] ], false ]
既知の問題
-
現在Groongaには、ベクターカラムに対してデータを大量に追加、削除、更新した際にデータが破損することがある問題があります。
-
*<
と*>
は、filter条件の右辺にquery()
を使う時のみ有効です。もし、以下のように指定した場合、*<
と*>
は&&
として機能します。'content @ "Groonga" *< content @ "Mroonga"'
-
GRN_II_CURSOR_SET_MIN_ENABLE
が原因でマッチするはずのレコードを返さないことがあります。
さいごに
詳細については、以下のお知らせも参照してください。
それでは、Groongaでガンガン検索してください!