BloGroonga

2023-09-12

Groonga 13.0.7リリース

Groonga 13.0.7をリリースしました!

それぞれの環境毎のインストール方法: インストール

変更内容

主な変更点は以下の通りです。

修正

  • normalize normalize コマンドで最後の offsettype が表示されない問題を修正しました。

    normalize コマンドは以下のようにノーマライズ後の文字のオフセットとタイプを表示できますが、最後の offsettype が表示されていませんでした。

    table_create Normalizations TABLE_PAT_KEY ShortText
    column_create Normalizations normalized COLUMN_SCALAR ShortText
    load --table Normalizations
    [
    {"_key": "あ", "normalized": "<あ>"}
    ]
    
    normalize   'NormalizerNFKC130("unify_kana", true, "report_source_offset", true),    NormalizerTable("normalized", "Normalizations.normalized",                    "report_source_offset", true)'   "お あ a ア i ア オ"   REMOVE_BLANK|WITH_TYPES|WITH_CHECKS
    [
      [
        0,
        0.0,
        0.0
      ],
      {
        "normalized": "お<あ>a<あ>i<あ>お",
        "types": [
          "hiragana",
          "symbol",
          "hiragana",
          "symbol",
          "alpha",
          "symbol",
          "hiragana",
          "symbol",
          "alpha",
          "symbol",
          "hiragana",
          "symbol",
          "hiragana"
        ],
        "checks": [
          3,
          0,
          0,
          4,
          -1,
          0,
          0,
          -1,
          4,
          4,
          -1,
          0,
          0,
          -1,
          4,
          4,
          -1,
          0,
          0,
          -1,
          4,
          0,
          0
        ],
        "offsets": [
          0,
          4,
          4,
          4,
          8,
          12,
          12,
          12,
          16,
          20,
          20,
          20,
          24
        ]
      }
    ]
    
  • ノーマライザー 複数のノーマライザーを使用した時に最後の文字のオフセットが不正になることがある問題を修正しました。

    例えば以下の例では、最後のオフセットは27が正しいですが、以下の例ではこの問題が原因で17になっています。

    table_create Normalizations TABLE_PAT_KEY ShortText
    column_create Normalizations normalized COLUMN_SCALAR ShortText
    load --table Normalizations
    [
    {"_key": "あ", "normalized": "<あ>"}
    ]
    
    normalize   'NormalizerNFKC130("unify_kana", true, "report_source_offset", true),    NormalizerTable("normalized", "Normalizations.normalized",                    "report_source_offset", true)'   "お あ a ア i ア オ"   REMOVE_BLANK|WITH_TYPES|WITH_CHECKS
    [
      [
        0,
        0.0,
        0.0
      ],
      {
        "normalized": "お<あ>a<あ>i<あ>お",
        "types": [
          "hiragana",
          "symbol",
          "hiragana",
          "symbol",
          "alpha",
          "symbol",
          "hiragana",
          "symbol",
          "alpha",
          "symbol",
          "hiragana",
          "symbol",
          "hiragana",
          "null"
        ],
        "checks": [
          3,
          0,
          0,
          4,
          -1,
          0,
          0,
          -1,
          4,
          4,
          -1,
          0,
          0,
          -1,
          4,
          4,
          -1,
          0,
          0,
          -1,
          4,
          0,
          0
        ],
        "offsets": [
          0,
          4,
          4,
          4,
          8,
          12,
          12,
          12,
          16,
          20,
          20,
          20,
          24,
          17
        ]
      }
    ]