Groonga 11.1.1 has been released
Groonga 11.1.1 has been released!
How to install: Install
Changes
Here are important changes in this release:
Improvements
-
select Added support for near phrase product search.
This feature is a shortcut of
'*NP"..." OR *NP"..." OR ...'
. For example, we can use*NPP
instead of the expression that execute mulitiple*NP
withquery
as below.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"")
We can be written as
*NPP"(a b) (1 2 3) (x y z)"
the above expression by this feature. In addition,*NPP"(a b) (1 2 3) (x y z)"
is faster than'*NP"..." OR *NP"..." OR ...'
.query ("title * 10 || content", "*NPP"(a b) (1 2 3) (x y z)"")
We implements this feature for improving performance near phrase search like
'*NP"..." OR *NP"..." OR ...'
. -
select Added support for order near phrase product search.
This feature is a shortcut of
'*ONP"..." OR *ONP"..." OR ...'
. For example, we can use*ONPP
instead of the expression that execute multiple*ONP
withquery
as below.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"")
We can be written as
*ONPP"(a b) (1 2 3) (x y z)"
the above expression by this feature. In addition,*ONPP"(a b) (1 2 3) (x y z)"
is faster than'*ONP"..." OR *ONP"..." OR ...'
.query ("title * 10 || content", "*ONPP"(a b) (1 2 3) (x y z)"")
We implements this feature for improving performance near phrase search like
'*ONP"..." OR *ONP"..." OR ...'
. -
request_cancel Groonga became easily detects
request_cancel
while executing a search.Because we added more checks of return code to detect
request_cancel
. -
thread_dump Added a new command
thread_dump
Currently, this command works only on Windows.
We can put a backtrace of all threads into a log as logs of NOTICE level at the time of running this command.
This feature is useful when we solve a problem such as Groonga doesn't return a response.
-
CentOS Dropped support for CentOS 8.
Because CentOS 8 will reach EOL at 2021-12-31.
Fixes
-
Fixed a bug that we can't remove a index column with invalid parameter.
-
For example, we can't remove a table when we create an invalid index column with
column_create
as below.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 ]
-
Known Issues
-
Currently, Groonga has a bug that there is possible that data is corrupt when we execute many additions, delete, and update data to vector column.
-
*<
and*>
only valid when we usequery()
the right side of filter condition. If we specify as below,*<
and*>
work as&&
.'content @ "Groonga" *< content @ "Mroonga"'
-
Groonga may not return records that should match caused by
GRN_II_CURSOR_SET_MIN_ENABLE
.
Conclusion
Please refert to the following news for more details.
Let's search by Groonga!