BloGroonga

2020-01-07

Groonga 9.1.1 has been released

Groonga 9.1.1 has been released!

How to install: Install

Changes

Here are important changes in this release:

  • load Added support for Apache Arrow format data.

    • If we use Apache Arrow format data, we may reduce parse cost. Therefore, data might be loading faster than other formats.
    • Groonga can also directly input data for Apache Arrow format from other data analysis systems by this improvement.
    • However, Apache Arrow format can use in the HTTP interface only. We can't use it in the command line interface.
  • load Improve error message.

    • Response of load command includes error message also.
    • If we faile data load, Groonga output error detail of load command as below by this Improvement.
    table_create Memos TABLE_NO_KEY
    [[0,0.0,0.0],true]
    column_create Memos content COLUMN_SCALAR Text
    [[0,0.0,0.0],true]
    load --table Memos
    [
    {"content": "Groonga is fast"}
    ]
    [[0,0.0,0.0],1]
    load --table Memos
    [
    {"_id": "invalid", "content": "Mroonga is fast"}
    ]
    [[[-22,0.0,0.0],"<_id>: failed to cast to <UInt32>: <\"invalid\">"],0]
    
    • If we want to output multiple error messages, we use output_errors option of command_version 3 as below.
    table_create Memos TABLE_NO_KEY
    [[0,0.0,0.0],true]
    column_create Memos content COLUMN_SCALAR Text
    [[0,0.0,0.0],true]
    load --table Memos --command_version 3 --output_errors yes
    [
    {"_id": "invalid", "content": "Groonga is fast"},
    {"_id": "invalid", "content": "Mroonga is fast"}
    ]
    {
      "header":{
        "return_code":-22,
        "start_time":1576717803.408522,
        "elapsed_time":0.8798723220825195,
        "error":{
          "message":"<_id>: failed to cast to <UInt32>: <\"invalid\">",
          "function":"parse_id_value",
          "file":"load.c","line":394
        }
      },
      "body":{
        "n_loaded_records":0,
        "errors":[
          {
            "return_code":-22,
            "message":"<_id>: failed to cast to <UInt32>: <\"invalid\">"
          },
          {
            "return_code":-22,
            "message":"<_id>: failed to cast to <UInt32>: <\"invalid\">"
          }
        ]
      }
    }
    
  • [httpd] Updated bundled nginx to 1.17.7.

  • Groonga HTTP server Added support for sending command parameters by body of HTTP request.

    • We must set application/x-www-form-urlencoded to Content-Type for this case.
    • If we use the HTTP POST request, we can specify multiple parameters as below by the HTTP request body.
    POST /d/status HTTP/1.1
    Host: 127.0.0.1:10041
    Content-Length: 35
    Content-Type: application/x-www-form-urlencoded
    
    command_version=3&output_pretty=yes
    

Conclusion

See Release 9.1.1 2020-01-07 about detailed changes since 9.1.0

Let's search by Groonga!

2019-11-29

Groonga 9.1.0 has been released

Groonga 9.1.0 has been released!

How to install: Install

Changes

Here are important changes in this release:

  • Improved the performance of the "&&" operation.

    • For example, the performance of condition expression such as the following is increased.

    • ( A || B ) && ( C || D ) && ( E || F) ...

    • This optimization has an effect especially when a condition that hits many records and it that hits few records are mixing.

  • TokenMecab Added a new option use_base_form.

    • We can search using the base form of a token by this option.

    • For example, if we search "支える" using this option, "支えた" is hit also.

  • Fix a bug that when the accessor is index, performance decreases.

    • For example, it occurs with the query include the following conditions.

      • sccessor @ query

      • accessor == query

  • Fixed a bug the estimated size of a search result was overflow when the buffer is big enough.

  • Added missing tools.

    • Because index-column-diff-all.sh and object-inspect-all.sh had not bundled in before version.

Conclusion

See Release 9.1.0 2019-11-29 about detailed changes since 9.0.9

Let's search by Groonga!

2019-10-30

Groonga 9.0.9 has been released

Groonga 9.0.9 has been released!

How to install: Install

Notice

Maybe performance decreases from this version. Therefore, If performance decreases than before, please report us with reproducible steps.

Changes

Here are important changes in this release:

  • log Improved that output the sending time of response into query-log.

  • status Added that the number of current jobs in the status command response.

  • groonga-httpd Added support for $request_time in log.

    • In the previous version, even if we specified the $request_time in the log_format directive, it was always 0.00.
    • If we specify the $request_time, groonga-httpd output the correct time form this version.
  • groonga-httpd Added how to set the $request_time in the document.

  • Supported Ubuntu 19.10 (Eoan Ermine)

  • Supported CentOS 8 (experimental)

    • The package for CentOS 8 can't use a part of features(e.g. we can't use TokenMecab and can't cast to int32 vector from JSON string) for lacking some packages for development.
  • [tools] Added a script for executeing the index_column_diff command simply.

    • This script name is index-column-diff-all.sh.
    • This script extracts index columns form Groonga's database and execute the index_column_diff command to them.
  • [tools] Added a script for executing object_inspect against all objects.

    • This script name is object-inspect-all.sh.
  • Fixed a bug that Groonga crash when we specify the value as the first argument of between.

Fixed a bug that Groonga crash when we specify the value as the first argument of between.

Groonga had been crashed as below case.

table_create Users TABLE_HASH_KEY ShortText
# [[0, 1337566253.89858, 0.000355720520019531], true]
column_create Users age COLUMN_SCALAR Int32
# [[0, 1337566253.89858, 0.000355720520019531], true]
table_create Ages TABLE_HASH_KEY Int32
# [[0, 1337566253.89858, 0.000355720520019531], true]
column_create Ages user_age COLUMN_INDEX Users age
# [[0, 1337566253.89858, 0.000355720520019531], true]
load --table Users
[
{"_key": "Alice",  "age": 12},
{"_key": "Bob",    "age": 13},
{"_key": "Calros", "age": 15},
{"_key": "Dave",   "age": 16},
{"_key": "Eric",   "age": 20},
{"_key": "Frank",  "age": 21}
]
# [[0, 1337566253.89858, 0.000355720520019531], 6]

select Users --filter 'between(14, 13, "include", 16, "include")'

Conclusion

See Release 9.0.9 2019-10-30 about detailed changes since 9.0.8

Let's search by Groonga!

2019-09-27

Groonga 9.0.8 has been released

Groonga 9.0.8 has been released!

How to install: Install

Changes

Here are important changes in this release:

  • Improved that Groonga ignores the index being built.

    • We can get correct search results even if the index is under construction.
    • However, the search is slow because of Groonga out of use the index to search in this case.
    • Even in cases where we couldn't get search results until now, we may get ones in this improvement.
  • sub_filter Added a feature that sub_filter executes a sequential search when Groonga is building indexes for the target column or the target column hasn't indexed.

    • If the valid index doesn't exist, sub_filter was an error until now.
    • Even if the valid index doesn't exist, it returns results by this improvement.
    • However if the above situation, sub_filter is slow. Because it is executed as a sequential search.
  • logical_range_filter Fixed a bug that exception about closing the same object twice occurs when we have enough records and the number of records that unmatch filter search criteria is more than the estimated value of it.

Conclusion

See Release 9.0.8 2019-09-27 about detailed changes since 9.0.7

Let's search by Groonga!

2019-08-29

Groonga 9.0.7 has been released

Groonga 9.0.7 has been released!

How to install: Install

Changes

Here are important changes in this release:

  • [httpd] Updated bundled nginx to 1.17.3.

    • Contains security fix for CVE-2019-9511, CVE-2019-9513, and CVE-2019-9516.
  • Fixed a bug that returns an empty result when we specify initial into a stage of a dynamic column and search for using index.

  • Fixed a bug that the configure phase didn't detect libedit despite installing it.

  • select Fixed a bug that --offset and --limit options didn't work with --sort_keys and --slices options.

  • select Fixed a bug that search result is empty when the result of select command is huge.

  • Fixed a bug that doesn't use a suitable index when prefix search and suffix search.

Conclusion

See Release 9.0.7 2019-08-29 about detailed changes since 9.0.6

Let's search by Groonga!