BloGroonga

2020-08-29

Groonga 10.0.6 has been released

Groonga 10.0.6 has been released!

How to install: Install

Changes

Here are important changes in this release:

  • logical_range_filter Improved search plan for large data.

    • Normally, logical_range_filter is faster than logical_select. However, it had been slower than logical_select in the below case.

      • If Groonga can't get the number of required records easily, it has the feature that switches index search from sequential search.
        • Normally, logical_range_filter uses a sequential search when records of search target are many.
      • The search process for it is almost the same as logical_select if the above switching occurred.
      • So, logical_range_filter is severalfold slower than logical_select in the above case if the search target is large data. Because logical_range_filter executes sort after the search.
    • If we search for large data, Groonga easily use sequential search than until now since this release.
    • Therefore, logical_range_filter will improve performance. Because the case of the search process almost the same as logical_select decreases.
  • [httpd] Updated bundled nginx to 1.19.1.

  • Modify how to install into Debian GNU/Linux.

    • We modify to use groonga-apt-source instead of groonga-archive-keyring.
    • Because the lintian command recommends using apt-source if a package that it puts files under the /etc/apt/sources.lists.d/.

      • The lintian command is the command which checks for many common packaging errors.
      • Please also refer to the following for the details about installation procedures.

  • logical_select Added a support for highlight_html and highlight_full.

  • Added support for recycling the IDs of records that are deleted when an array without value space delete.

    • If an array that doesn't have value space is deleted, deleted IDs are never recycled.
    • Groonga had used large storage space by large ID. Because it uses large storage space by itself.

      • For example, large ID is caused after many adds and deletes like Mroonga's mroonga_operations
  • select Improved performance of full-text-search without index.

  • function Improved performance for calling of function that all arguments a variable reference or literal.

  • indexing Improved performance of offline index construction by using token column.

  • Improved performance for "_score = func(...)".

    • The performance when the _score value calculate by using only function like "_score = func(...)" improved.
  • Fixed a bug that garbage may be included in response after response send error.

    • It may occur if a client didn't read all responses and closed the connection.

logical_select Added a support for highlight_html.

  • highlight_html and highlight_full can be used in only --output-columns in select until now.

  • They can be also used in logical_select since this release as below.

    plugin_register sharding
    plugin_register functions/number
    
    table_create Memos_20170315 TABLE_NO_KEY
    column_create Memos_20170315 timestamp COLUMN_SCALAR Time
    column_create Memos_20170315 content COLUMN_SCALAR Text
    
    table_create Memos_20170316 TABLE_NO_KEY
    column_create Memos_20170316 timestamp COLUMN_SCALAR Time
    column_create Memos_20170316 content COLUMN_SCALAR Text
    
    table_create Memos_20170317 TABLE_NO_KEY
    column_create Memos_20170317 timestamp COLUMN_SCALAR Time
    column_create Memos_20170317 content COLUMN_SCALAR Text
    
    load --table Memos_20170315
    [
    {"timestamp": "2017/03/15 00:00:00", "content": "Groonga is fast."},
    {"timestamp": "2017/03/15 01:00:00", "content": "Mroonga is fast and easy to use."}
    ]
    
    load --table Memos_20170316
    [
    {"timestamp": "2017/03/16 10:00:00", "content": "PGroonga is fast and easy to use."},
    {"timestamp": "2017/03/16 11:00:00", "content": "Rroonga is fast and easy to use."}
    ]
    
    logical_select Memos \
      --shard_key timestamp \
      --query 'content:@easy' \
      --output_columns 'content, highlight_html(content)'
    [
      [
        0,
        0.0,
        0.0
      ],
      [
        [
          [
            3
          ],
          [
            [
              "content",
              "Text"
            ],
            [
              "highlight_html",
              null
            ]
          ],
          [
            "Mroonga is fast and easy to use.",
            "Mroonga is fast and <span class=\"keyword\">easy</span> to use."
          ],
          [
            "PGroonga is fast and easy to use.",
            "PGroonga is fast and <span class=\"keyword\">easy</span> to use."
          ],
          [
            "Rroonga is fast and easy to use.",
            "Rroonga is fast and <span class=\"keyword\">easy</span> to use."
          ]
        ]
      ]
    ]
    

Conclusion

Let's search by Groonga!