Groonga 8.0.0 has been released
Groonga 8.0.0 has been released!
This is a major version up! But It keeps backward compatibility. You can upgrade to 8.0.0 without rebuilding database.
How to install: Install
Changes
Here are important changes in this release:
-
select added
--drilldown_adjuster
and--drilldowns[label].adjuster
. -
between Accept
between()
without borders. -
Fixed a memory leak for normal hash table.
select added --drilldown_adjuster
and --drilldowns[label].adjuster
.
Added --drilldown_adjuster
and --drilldowns[LABEL].adjuster
in select
arguments.
You can adjust score against result of drilldown.
Specifically, below.
table_create Categories TABLE_PAT_KEY ShortText
table_create Tags TABLE_PAT_KEY ShortText
column_create Tags categories COLUMN_VECTOR|WITH_WEIGHT Categories
table_create Memos TABLE_HASH_KEY ShortText
column_create Memos tags COLUMN_VECTOR Tags
column_create Categories tags_categories COLUMN_INDEX|WITH_WEIGHT \
Tags categories
load --table Tags
[
{"_key": "groonga", "categories": {"full-text-search": 100}},
{"_key": "mroonga", "categories": {"mysql": 100, "full-text-search": 80}},
{"_key": "ruby", "categories": {"language": 100}}
]
load --table Memos
[
{
"_key": "Groonga is fast",
"tags": ["groonga"]
},
{
"_key": "Mroonga is also fast",
"tags": ["mroonga", "groonga"]
},
{
"_key": "Ruby is an object oriented script language",
"tags": ["ruby"]
}
]
select Memos \
--limit 0 \
--output_columns _id \
--drilldown tags \
--drilldown_adjuster 'categories @ "full-text-search" * 2 + categories @ "mysql"' \
--drilldown_output_columns _key,_nsubrecs,_score
[
[
0,
0.0,
0.0
],
[
[
[
3
],
[
[
"_id",
"UInt32"
]
]
],
[
[
3
],
[
[
"_key",
"ShortText"
],
[
"_nsubrecs",
"Int32"
],
[
"_score",
"Int32"
]
],
[
"groonga",
2,
203
],
[
"mroonga",
1,
265
],
[
"ruby",
1,
0
]
]
]
]
In the above example, we adjust the score of records that have full-text-search
or mysql
in categories
.
between Accept between()
without borders.
From this release, max_border
and min_border
are now optional.
If the number of arguments passed to between()
is 3, the 2nd and 3rd arguments are handled as the inclusive edges.
Specifically, below.
table_create Users TABLE_HASH_KEY ShortText
column_create Users age COLUMN_SCALAR Int32
table_create Ages TABLE_PAT_KEY Int32
column_create Ages users_age COLUMN_INDEX Users age
load --table Users
[
{"_key": "alice", "age": 17},
{"_key": "bob", "age": 18},
{"_key": "calros", "age": 19},
{"_key": "dave", "age": 20},
{"_key": "eric", "age": 21}
]
select Users --filter 'between(age, 18, 20)'
[
[
0,
0.0,
0.0
],
[
[
[
3
],
[
[
"_id",
"UInt32"
],
[
"_key",
"ShortText"
],
[
"age",
"Int32"
]
],
[
2,
"bob",
18
],
[
3,
"calros",
19
],
[
4,
"dave",
20
]
]
]
]
Fixed a memory leak for normal hash table.
Fixed a bug that you sometimes can not connect to groonga just by continuing to send queries.
Conclusion
See Release 8.0.0 2018-02-09 about detailed changes since 7.1.1
Let's search by Groonga!