Groonga 14.0.5 has been released
Groonga 14.0.5 has been released!
How to install: Install
Changes
Here are important changes in this release:
Improvements
-
Added a new feature that objects(table or column) as remove as possible.
The crash safe feature of PGroonga will use this feature mainly.
PGroonga will apply PGroonga’s WAL to standby database automatically by using
Custom WAL Resource Managers
. However, when PGroonga useCustom WAL Resource Managers
, all replications are stop if PGroonga fail application of PGroonga’s WAL due to break Groonga’s object. So, if broken objects exist in database, Groonga will try as remove as possible objects by using this feature.
Fixes
-
[query()] Fixed a bug that the order of evaluation of
'A || query("...", "B C")'
is wrongHere is occurrence condition of this problem.
- We use
OR
search andquery()
. - We use
AND
search inquery()
. - The order of condition expression is
'A || query("...", "B C")'
.
So, this problem doesn't occur if we use only
query()
or we don't useAND
search inquery()
.We expect that
{"name": "Alice", "memo": "Groonga user"}
is hit in the following example. However, if this problem occurred, the following query had not been hit.table_create Users TABLE_NO_KEY column_create Users name COLUMN_SCALAR ShortText column_create Users memo COLUMN_SCALAR ShortText load --table Users [ {"name": "Alice", "memo": "Groonga user"}, {"name": "Bob", "memo": "Rroonga user"} ] select Users \ --output_columns 'name, memo, _score' \ --filter 'memo @ "Groonga" || query("name", "Bob Rroonga")' [[0,0.0,0.0],[[[0],[["name","ShortText"],["memo","ShortText"],["_score","Int32"]]]]]
After the fix,
{"name": "Alice", "memo": "Groonga user"}
is hit such as the following example.select Users \ --output_columns 'name, memo, _score' \ --filter 'memo @ "Groonga" || query("name", "Bob Rroonga")' [ [ 0, 1719376617.537505, 0.002481460571289062 ], [ [ [ 1 ], [ [ "name", "ShortText" ], [ "memo", "ShortText" ], [ "_score", "Int32" ] ], [ "Alice", "Groonga user", 1 ] ] ] ]
- We use
-
[select] Fixed a bug that a condition that evaluate prefix search in advance such as
--query "A* OR B"
returned wrong search resultThis problem may occur when prefix search evaluate in advance. This problem doesn't occur a condition that evaluate prefix search in the end such as
--query A OR B*
.If this problem occur, the
Bo
and theli
of--query "Bo* OR li"
are evaluated as a prefix search. As a result, The following query does not hit. Becauseli
is evaluated as a prefix search as mentioned above.table_create Users TABLE_NO_KEY column_create Users name COLUMN_SCALAR ShortText load --table Users [ ["name"], ["Alice"] ] select Users \ --match_columns name \ --query "Bo* OR li" [ [ 0, 1719377505.628048, 0.0007376670837402344 ], [ [ [ 0 ], [ [ "_id", "UInt32" ], [ "name", "ShortText" ] ] ] ] ]
Conclusion
Please refert to the following news for more details. News Release 14.0.5
Let's search by Groonga!