Groonga 11.0.2 has been released
Groonga 11.0.2 has been released!
How to install: Install
Changes
Here are important changes in this release:
Improvements
-
[Documentation] Removed a reference about
ruby_load
command.- Because this command has already deleted.
-
Debian GNU/Linux Added support for Debian 11(Bullseye).
-
select Added support for
--post_filter
. -
select Added support for
--slices[].post_filter
. -
select Added support for describing expression into
--sort_keys
. -
Token filters Added support for multiple token filters with options.
- We can specify multiple token filters with options like
--token_filters 'TokenFilterStopWord("column", "ignore"), TokenFilterNFKC130("unify_kana", true)'
.
- We can specify multiple token filters with options like
-
query Added support a dynamic column of
result_set
stage with complex expression.-
Complex expression is that it needs temporary result sets internally like a following expression.
'(true && query("name * 10", "ali", {"score_column": "ali_score"})) || \ (true && query("name * 2", "li", {"scorne_column": "li_score"}))'
- In the above expressions, the temporary result sets are used to store the result of evaluating the
true
. -
Therefore, for example, in the following expression, we can use a value of dynamic column of
result_set
stage in expression. Because temporary result sets internally are needless as below expression.'(query("name * 10", "ali", {"score_column": "ali_score"})) || \ (query("name * 2", "li", {"score_column": "li_score"}))'
- In the above expressions, the temporary result sets are used to store the result of evaluating the
-
In this release, for example, we can set a value to
li_score
as below. (The value ofli_score
had been0
in before version. Because the second expression could not get dynamic column.)table_create Users TABLE_NO_KEY column_create Users name COLUMN_SCALAR ShortText table_create Lexicon TABLE_HASH_KEY ShortText \ --default_tokenizer TokenBigramSplitSymbolAlphaDigit \ --normalizer NormalizerAuto column_create Lexicon users_name COLUMN_INDEX|WITH_POSITION Users name load --table Users [ {"name": "Alice"}, {"name": "Alisa"}, {"name": "Bob"} ] select Users \ --columns[ali_score].stage result_set \ --columns[ali_score].type Float \ --columns[ali_score].flags COLUMN_SCALAR \ --columns[li_score].stage result_set \ --columns[li_score].type Float \ --columns[li_score].flags COLUMN_SCALAR \ --output_columns name,_score,ali_score,li_score \ --filter '(true && query("name * 10", "ali", {"score_column": "ali_score"})) || \ (true && query("name * 2", "li", {"score_column": "li_score"}))' [ [ 0, 0.0, 0.0 ], [ [ [ 2 ], [ [ "name", "ShortText" ], [ "_score", "Int32" ], [ "ali_score", "Float" ], [ "li_score", "Float" ] ], [ "Alice", 14, 10.0, 2.0 ], [ "Alisa", 14, 10.0, 2.0 ] ] ] ]
-
We also supported a dynamic vector column of
result_set
stage as below.table_create Users TABLE_NO_KEY column_create Users name COLUMN_SCALAR ShortText table_create Lexicon TABLE_HASH_KEY ShortText \ --default_tokenizer TokenBigramSplitSymbolAlphaDigit \ --normalizer NormalizerAuto column_create Lexicon users_name COLUMN_INDEX|WITH_POSITION Users name load --table Users [ {"name": "Alice"}, {"name": "Alisa"}, {"name": "Bob"} ] select Users \ --columns[tags].stage result_set \ --columns[tags].type ShortText \ --columns[tags].flags COLUMN_VECTOR \ --output_columns name,tags \ --filter '(true && query("name", "al", {"tags": ["al"], "tags_column": "tags"})) || \ (true && query("name", "sa", {"tags": ["sa"], "tags_column": "tags"}))' [ [ 0, 0.0, 0.0 ], [ [ [ 2 ], [ [ "name", "ShortText" ], [ "tags", "ShortText" ] ], [ "Alice", [ "al" ] ], [ "Alisa", [ "al", "sa" ] ] ] ] ]
- If we use a dynamic vector column, the storing values are appended values of each element.
-
-
Ubuntu Added support for Ubuntu 21.04 (Hirsute Hippo).
-
[httpd] Updated bundled nginx to 1.19.10.
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.
-
[The browser based administration tool] Currently, Groonga has a bug that a search query that is inputted to non-administration mode is sent even if we input checks to the checkbox for the administration mode of a record list.
Conclusion
Please refert to the following news for more details.
Let's search by Groonga!