Groonga is a fast and accurate full text search engine based on inverted index. One of the characteristics of Groonga is that a newly registered document instantly appears in search results. Also, Groonga allows updates without read locks. These characteristics result in superior performance on real-time applications.
Groonga is also a column-oriented database management system (DBMS). Compared with well-known row-oriented systems, such as MySQL and PostgreSQL, column-oriented systems are more suited for aggregate queries. Due to this advantage, Groonga can cover weakness of row-oriented systems.
The basic functions of Groonga are provided in a C library. Also, libraries for using Groonga in other languages, such as Ruby, are provided by related projects. In addition, groonga-based storage engines are provided for MySQL and PostgreSQL. These libraries and storage engines allow any application to use Groonga.
Homepage
Download
Recent Releases
10.0.730 Sep 2020 07:45
minor feature:
Hash: a that grn_hash_get() runs infinitely
.
Travis macos: increase the number of openable files.
.
ci: use GitHub Actions for CMake on macOS.
.
ci macos: use build directory.
.
ci: use actions/checkout v2.
.
Cmake: generate version.sh into build directory.
.
ci macos: set SDKROOT for mruby.
.
ci macos: enable Apache Arrow.
.
Apache-arrow: require 1.0.0.
.
Add missing static to internal function.
.
ii: remove unused functions.
.
ii: add const to read only variables.
.
ii: add const to source chunk data.
.
ci: add missing "=".
.
ii: add const to source buffer data.
.
ii: add more const to source chunk data.
.
ii: don't keep needless buffer_term.
.
ii chunk_merge: add error check for grn_p_encv().
.
ii chunk_free: remove unused argument.
.
ii grn_p_encv: use -1 for error.
.
ii chunk_merge: don't free source chunk immediately.
.
Highlight highlight_full: add support for normalizer options.
.
Error: add GRN_CONNECTION_RESET.
.
Add a missing ;.
.
Grn_hash_reset: log.
.
Rename grn_obj_is_lexicon() to grn_obj_is_table_with_key().
.
Rename grn_obj_is_lexicon() to grn_obj_is_lexicon_without_data_column().
.
Remove an out-of-date script.
.
Package ubuntu: remove 19.10.
.
Tool create-hath-table-with-duplicated-key: add.
.
Grn_table_get_duplicated_keys grn_table_have_duplicated_keys: add.
.
Grn_db_recover: add support for recovering broken lexicon without dat .
.
Mrb: add TableWithKey to provided methods only for table with key.
.
Mrb: add support for getting values from vector column.
.
Grndb: add support for detecting and recovering duplicated key table.
.
Hash: add support for dirty check.
.
Tool create-hash-table-with-duplicated-key: don't build on Windows.
.
Grndb check: don't check table with key for corrupt table.
.
Test grndb: update expected.
.
Test command_line windows: omit tests that use pre-created ture DB.
.
Revert "hash: add support for dirty check".
.
ii near_phrase: a infinite loop.
Grn_inspect: add
10.0.629 Aug 2020 03:25
minor feature:
ci windows-msvc: path
.
ci linux-mingw: add missing checkout.
.
Appveyor: don't use substring for JOB_TYPE value.
.
Doc news: add a missing entry.
.
Cmake: use find_package().
.
Cmake windows: use /Ob2 with RelWithDebInfo for performance.
.
Cmake: don't require pkg-config.
.
Cmake: a typo.
.
Mruby: update to remove bison dependency.
.
Windows: ensure using 64bit version time functions.
.
Windows: ensure using 64bit version localtime_s().
.
Apache-arrow: upgrade to 1.0.0.
.
Cmake: ensure expanding variable.
.
Mruby mingw i686: use _time64_t.
.
Cmake: don't expand quoted value in if().
.
Logical_range_filter: improve planning for large data.
.
Logical_range_filter: tune planning.
.
Mingw 32bit: give up support for 64bit time.
.
Mingw 32bit: recent 32bit MinGW provides _mkgmtime().
.
Windows: remove needless ifdef.
.
Mingw: don't use MinGW's vsnprintf() implementation.
.
Mingw: don't use the MSVCRT's vsnprintf() implementation.
.
io: remove unused grn_io_win::pos field.
.
Windows io: use int64_t instead of off_t explicitly.
.
Groonga http: revert select() before WSASend() and sendmsg().
.
Groonga http: type for send log size.
.
Nginx: update bundles version to 1.19.1.
.
Grn_ii_estimate_size_for_query_regexp: wrong type.
.
ii near_phrase: add support for the last phrase by " ".
.
a that garbage may be included in response after response sen .
.
Regexp: add support for searching ".", ".." and so on by index.
.
Regexp: multiple characters before "." and multiple "." cases.
.
Doc install: modify how to install into Debian GNU/Linux.
.
Regexp: remove garbage GRN_OBJ_FIN().
.
Regexp: "a." with two more last characters case.
.
ci windows: use the latest red-arrow.
.
Test: ignore IO related logs.
.
Grn_expr_ set,get _condition: add new APIs to set/get condition to ex .
.
Logical_select: add support for highlight and snippet families.
.
Array: add support for recycling deleted IDs without value space.
.
10.0.531 Jul 2020 03:15
minor feature:
Windows: use _BitScanReverse() to find the most significant 1 bit
.
Bump version.
.
Output json: use null for NaN, Infinity and -Infinity.
.
Grn_obj_is_number_family_scalar_column: add.
.
Aggregator_*: wrong input validation.
.
Aggregator_*: wrong error code.
.
Aggregator_sd: add.
.
Cmake: document.
.
Doc: add a explanation about Float32 type.
.
Packages centos8: msgpack-devel and libzstd-devel are available.
.
Packages centos8 yum: enable test.
.
Package centos8: disable test again.
.
Aggregator_*: support score accessor for target.
.
Grn_table_add_subrec: inline.
.
Grn_selector_data_current_add_score: inline data availability check.
.
Grn_table_sort: improve performance by using resolved ID.
.
Move error related definitions to grn_error.h from grn_ctx.h.
.
GRN_IO_ARRAY_AT: use static inline instead of macro.
.
Split grn_table_module related API to table_module. c,h .
.
Remove moved declarations.
.
Use cinttypes with C++.
.
Add missing include.
.
Grn_table_cursor_foreach(): add.
.
Grn_table_cursor: use grn_table_cursor_foreach() for single key case.
.
Grn_table_group: optimize single key size column case.
.
Grn_table_group: unify acceleration code.
.
Grn_table_group: unify acceleration code for reference vector.
.
Grn_table_group: unify acceleration code for reference vector.
.
Grn_table_group: optimize adding a record to group.
.
Grn_table_group: add orphan record check again.
.
ci mingw: generate PDB.
.
Appveyor: drop support for Visual Studio 2013.
.
ci linux-mingw: run test.
.
ci windows-msvc: add Visual Studio 2017 cases.
.
ci: a typo.
.
ci windows-msvc: adjust CMake arguments.
.
ci linux-mingw: artifact path handling.
.
ci windows-msvc: add missing Env:
.
ci windows-msvc: "!=" doesn't exist in batch file.
.
ci linux-mingw: add missing " ".
.
ci windows-msvc: architecture name for
10.0.427 Jun 2020 14:25
minor feature:
Bump version
.
Select load_table: add support for reference count.
.
io: keep path instead of getting path from file descriptor or handle.
.
Test: split reference count test for Windows and not Windows.
.
Test: remove log normalization.
.
Extract functions for token column.
.
Arrow: export arrow::Status and arrow::Result related functions inter .
.
Token_column: add support for parallel offline construction.
.
Token_column: a parallel offline construction.
Token_column: reduce scope.
.
Token_column: use GRN_CURSOR_BY_ID for performance.
.
Token_column: increase the default parallel offline construction thre .
.
ci msys2: upgrade pacman first.
.
ci msys2: ignore dependencies for pacman.
.
Vector_slice: support float32.
.
ci msys2: remove workaround.
.
Grn_tokenizer_query: use uint32_t instead of unsigned int for flags.
.
Token_column: don't use nullptr for g++ on CentOS 6.
.
Token_column: add missing GRN_ID_NIL checks.
.
Token_column: improve parallel offline build performance.
.
Grn_token_cursor_cursor: remove garbage grn_io_lock().
.
Groonga http: don't use header after the last chunk.
.
Mruby: use "unref" instead of "unlink" to use the same term in Groonga.
.
Grn_accessor_execute: add support for reference count.
.
Grn_accessor_estimate_size_for_query: add support for reference count.
.
Grn_obj_: log reference count message only for DB object.
.
Arrow: add support for reference count.
.
Scan_info_build_match: add support for reference count.
.
Grn_table_select_index_range_column: add support for reference count.
.
Grn_hash_reset: add support for reference count.
.
Use grn_obj_unref() instead of grn_obj_unlink() and grn_enable_refere .
.
Mrb IndexColumn#estimate_size_for_query: add support for reference count.
.
Mrb IndexCursor#select: add support for reference count.
.
Mrb TableSortKey: add support for reference count.
.
Logical_count: a that range index is never used.
.
LogicalEnumerator: add support
10.0.330 May 2020 14:45
minor feature:
Bump version
.
Mruby: disable missing-field-initializers warning.
.
Add weight vector and uvector related predicates.
.
Use grn_obj_is_weight_uvector().
.
Github-actions: use upload-artifacts v2.
.
Move vector related codes to vector.h and vector.cpp.
.
Add missing AC_SUBST.
.
Add grn_type_id_size().
.
Use explicit size types.
.
Use explicit size types.
.
Cast: add support for key type to reference uvector cast.
.
Use explicit size types.
.
Add support for float32 weight vector.
.
Test: update expected.
.
Arrow: add support for float32 weight vector.
.
Add support for near phrase search.
.
Near-phrase: a that inverted order isn't match.
.
Doc near-phrase: add rough document.
.
Doc: remove needless GRN_API.
.
Doc: restore file list.
.
Scorer: improve "_score = column1 X + column2 Y +..." performance.
.
Sort: cache the first referred value again.
.
Select: add scorer content to query log.
.
Sort: improve performance.
.
Vector: a vector value get.
Vector: add WEIGHT_FLOAT32 flag to pack() too.
.
Grn_db_value_lock: increase the max number of tries.
.
Grn_ctx_at: add error check on lock.
.
Extract selector related declarations.
.
Use grn_obj_unref().
.
Add grn_selector_data.
.
Add grn_plugin_proc_get_value_operator().
.
Remove garbage.
.
Add missing include.
.
Add grn_proc_options_parse() and grn_proc_options_vparse().
.
Add grn_plugin_proc_get_value_bool().
.
Snippet: use grn_proc_options_parse().
.
Fuzz_search: use grn_proc_options_parse().
.
Use grn_obj_refer() and grn_obj_unlink().
.
Add missing proc.h.
.
Reuse buffer on outputting records.
.
Metadata.
.
Pass expr to grn_selector_run.
.
Use grn_selector_run for no index case.
.
Grn_obj_reinit: add more information to error message.
.
Grn_obj_reinit: use grn_obj_unref().
.
Grn_output_uvector: use grn_obj_unref().
.
Use XXXv() instead of vXXX() for va_list API.
.
Grn_obj_reinit: don't use grn_ctx_at() in grn_obj_reinit().
.
ci: remove Docker bas
10.0.229 Apr 2020 22:05
minor feature:
ci linux-mingw: add missing
.
Bump version.
.
Delete: a that unrelated column value may be cleared.
.
Use more meaningful name.
.
Delete: use more strict check.
.
Dump: a memory on with sort_hash_table.
.
Select: a memory leak on invalid output_columns.
.
Snippet: a memory leak.
.
Select slices: a memory leak on initial stage.
.
Select slices: use local assigned variable.
.
Logical_table_remove: a memory leak in Table#delete.
.
Grn_expr_parse: a memory leak on reference count mode.
.
Grn_table_get_score: a memory leak on reference count mode.
.
Grn_obj_unref: add a new API.
.
Index_column_*: memory leaks on reference count mode.
.
Select_to_function_data_fin: a memory leak on reference count mode.
.
Arrow: use emitter API.
.
ci: enable test on Windows again.
.
Arrow: improve performance on many small chunks.
.
Arrow: support Apache Arrow 0.16.0 again.
.
Arrow: update submodule.
.
Don't distribute include/groonga/version.h.
.
Install groonga/version.h.
.
Expr: ensure initializing scan_info::query.
.
Select slices: unlink tables after unlinking others.
.
Reference-count: add more delogs.
.
Grn_obj_set_value_column_var_size_vector: use grn_obj_unref().
.
Load vector: add support for inserting weight vector as a JSON string.
.
Test: extension.
.
Load vector: add content as one vector element as is for invalid JSON.
.
Packages windows: improve the target build detection for master.
.
Update release procedure.
.
Load arrow: too much unlink _key accessor.
.
Add Float32 type.
.
Msgpack: a typo.
.
Msgpack: build error with msgpack 1.4.2.
.
Vector: don't use "auto" for old g++ on CentOS 6.
.
Msgpack: really build error with msgpack 1.4.2.
.
Msgpack: a typo.
.
Apache-arrow: update.
.
Float32: reduce the digit number to show.
.
Float32: add a test for sort.
.
Test float32: add a test for loading float32 vector.
.
Float32: ensure adding Float32 type to existing DB.
.
Msgpack: 1.4 doesn't have MSGP
10.0.101 Apr 2020 18:45
minor feature:
Packages windows: add support for downloading tagged version
.
ci windows-msvc: bundle vcruntime140_1.dll.
.
Bump version.
.
Doc news: add news topics for 10.0.1.
.
Update latest release.
10.0.028 Mar 2020 06:05
minor feature:
Packages: add repository information
.
Packages yum: remove groonga-release.
.
Revert "Revert "mruby: upgrade to 59464f35285e65598bca94ad9e77be6848a .
.
Revert "Revert "mruby: update mrbgems source path"".
.
ci: order.
.
Use the latest Apache Arrow.
.
Packages: remove needless code.
.
Doc install debian: use groonga-archive-keyring.
.
Doc install ubuntu: add 19.10.
.
Doc install centos: use groonga-release for each version.
.
Packages centos: use versioned groonga-release.
.
Doc: add missing translate.
.
Doc news: update entries.
.
Packages ubuntu: add support for customizing minor version.
.
Appveyor: enable grntest again.
.
Nginx: update bundles version to 1.17.8.
.
Remove GRN_VERSION from config.h.
.
Mruby: update mruby-pp to crash with the latest mruby.
.
ci: update how to install Apache Arrow.
.
Github-actions msvc: enable test.
.
ci: remove garbage.
.
ci: remove garbage.
.
Grn_arrow_load: a crash.
Windows: log path in delog level.
.
ci: add missing " ".
.
Travis: enable Apache Arrow for master build.
.
Bump version.
.
Travis: update Homebrew explicitly.
.
Add docker-compose to run test Docker containers.
.
ci: disable test/command/ tests on Ubuntu 16.04.
.
Add support for file open/delog on Linux.
.
Load: keep reference of index column of referenced table.
.
Appveyor: disable tests for x86.
.
Mruby windows 32bit: use MRB_METHOD_T_STRUCT.
.
Mruby: don't reset MRUBY_DEFINITIONS defined in the top-level CMakeLi .
.
Appveyor: specify "cmake -A" explicitly.
.
Windows mingw 32bit: use MRB_METHOD_T_STRUCT.
.
Appveyor: don't set "cmake -A" explicitly.
.
io: reduce open/log level on Linux.
.
Test/unit: reduce collect log level.
.
Mruby: update to 7905431fe98b7f075033657aff15982d7e4613e6.
.
Mruby: add Writer#flush.
.
Groonga: add support for stream output by JSON.
.
ci: install red-arrow explicilty.
.
Logical_range_filter: add support for stream output.
.
Logical_range_filter: make test workable
9.1.230 Jan 2020 03:15
minor feature:
a typo
.
Doc load: document Content-Type for Apache Arrow.
.
Add a tool that copies only related files.
.
Include tools into archive.
.
Add log for reference count.
.
Reduce log level for reference count.
.
Grn_obj_default_set_value_hook: ensure unlinking referred object.
.
Grn_obj_set_info_source_validate: ensure unlinking referred object.
.
Grn_obj_reinit: ensure unlinking referred object.
.
Grn_index_column_build: ensure unlinking referred object.
.
Update_source_hook: ensure unlinking referred object.
.
Grn_table_truncate_reference_objects: ensure unlinking referred object.
.
Grn_obj_set_info_source_validate: ensure unlinking referred object.
.
Grn_ctx_at: ensure unlinking referred object.
.
Grn_index_column_build: ensure unlinking referred object.
.
Grn_ii_builder_fin: ensure unlinking referred object.
.
ii: ensure referring lexicon.
.
Temporary_open_space: disable on reference count mode.
.
Add GRN_TINY_ARRAY_EACH_BEGIN/END.
.
Grn_db_: defer closing tables.
.
Groonga: accept "/d/shutdown?mode=immediate" immediately even when al .
.
Grn_db_unmap: defer closing tables.
.
Grn_obj_cast_to_record: ensure unlinking referred object.
.
Grn_obj_set_value_column_var_size_vector: ensure unlinking referred o .
.
Grn_obj_get_value_column_vector: ensure unlinking referred object.
.
Grn_column_get_all_index_columns: add a new API.
.
Set_vector: ensure unlinking referred object.
.
Load: keep references of related object while loading.
.
Github-actions: enable mruby.
.
Cmake: add support for Ruby 2.7.
.
Github-actions: install Bison for mruby.
.
Github-actions: package name.
.
Github-actions: reorder.
.
Use URI#open.
.
Use osdn.jp.
.
Github-actions: use win_bison.exe.
.
Cmake mruby windows: ensure using Visual C++ mode.
.
Cmake mruby windows: ensure using Visual C++ compilers.
.
Cmake mruby windows: quote a path that may include a space.
.
Windows mruby
9.1.108 Jan 2020 06:25
minor feature:
Use Apache Arrow instead of Arrow
.
Packages: add missing description to apt:release and yum:release.
.
Use n_ style.
.
Travis: enable Apache Arrow.
.
Packages: add missing require.
.
Packages windows: use UTF-8 for language file encoding.
.
Revert "Revert "Optimize sort by value"".
.
Revert grn_obj_ensure_bulk() change in 7e30c01.
.
Load: add support for Apache Arrow.
.
Add missing Apache Arrow availability check.
.
Sort: allocate grn_obj as separated array and use them as pointer.
.
Appveyor: use the latest Apache Arrow package.
.
Github-actions: ensure updating APT information.
.
Packages mingw: disable Apache Arrow.
.
Add missing grn_arrow.h.
.
Include grn_arrow.h only when Apache Arrow is enabled.
.
Doc: add a how to install for CentOS 8.
.
Packages: add missing existent check.
.
Bump version.
.
Vector set: add support for setting values by Int64 uvector.
.
Load: add support for vector.
.
Load: add support for weight vector.
.
Test: --stop-on-failure is also no argument option.
.
Test: don't use empty records for load data.
.
Load arrow: use view.
.
Load arrow: add support for casting reference key.
.
Load arrow: add support for number key again.
.
Load arrow: use "put_".
.
a typo.
.
Test: wrong vector value.
.
Test: don't use empty value load.
.
Test: don't use empty value load.
.
Load arrow: cast value to column's type.
.
ii: add support for auto cast when updating with uvector.
.
Load arrow: a memory leak.
.
Github-actions: add a workflow for CI on Linux.
.
Test: don't use empty record for load.
.
Test: don't use empty record for load.
.
Github-actions: add missing sudo.
.
Github-actions: continuous line syntax.
.
Github-actions: install Sphinx.
.
Github-actions: install Ruby.
.
Github-actions: submodules is removed.
.
Github-actions: install Bison.
.
Github-actions: use debuild.
.
Github-actions: install gettext.
.
Use static inline instead of macro for easy to de.
Referenc
9.1.028 Nov 2019 09:05
minor feature:
Github-actions: try uploading packages
.
Github-actions: a typo.
.
Github-actions: a typo.
.
Github-actions: use different artifact name for each job.
.
Github-actions: run on tag.
.
ii: a overflow of estimated size.
.
Bump version.
.
Configure: test(1) portability.
.
Tool: bundle index_column_diff script.
.
Tools: bundle missing scripts.
.
Remove too much unlink.
.
Remove too much unlink.
.
Add support for enabling reference count by environment variable.
.
Mrb: add support for Groonga::Bulk to GRN_BULK conversion.
.
Grn_accessor_estimate_size_for_query: add a new API.
.
Mrb: add Groonga::Accessor#estimate_size.
.
Estimater: add support for estimation for "accessor @ query" again.
.
Estimater: improve precision for estimation of "accessor == query".
.
Don't estimate no indexed accessor query.
.
Logical_range_filter: increase threshold to 0.3 from 0.2.
.
Doc api: a typo.
.
Test: update expected.
.
Use URI#open.
.
Accept not completed AppVeyor build if the latest build isn't completed.
.
Check whether downloaded.
.
Source: replace weak signing key.
.
Doc: a typo.
.
Add new option for tokenmecab.
.
Remove grnts.
.
Use early return.
.
Remove decode.
.
Cache columns for clearing values on delete.
.
Use cached column for deleting referenced records on delete.
.
Mingw: use the latest cv2pdb.exe URL.
.
Reduce cache clear scope.
.
Optimize sequential search for simple match and simple pre.
Revert "Optimize sequential search for simple match and simple pre".
.
Remove needless spaces.
.
Extract sub text finder as grn_raw_string_have_sub_text().
.
Inverted condition.
.
Optimize sequential search for simple match.
.
Packages: use the latest package-task.
.
Packages: vendor apache-arrow and add packages.groonga.org configuration.
.
Packages: use "rake version:update".
.
Github-actions: stop fetch-depth: 1.
.
a typo.
.
Packages :remove unused variable.
.
Packages add support for "rake version:update".
.
Grn
9.0.930 Oct 2019 18:42
minor feature: