お知らせ

12.1.0: 2022-12-05

修正

  • [Groonga::PatriciaTrie] 大量のワードがヒットするとき、 Groonga::PatriciaTrie#scan が誤ったオフセットを返却する問題を修正しました。[GitHub#207][村上さんのパッチ提供]

感謝

  • 村上さん

12.0.8: 2022-09-28

改善

12.0.2: 2022-04-04

改善

  • Added support for :weight_float32 for vector column. This requires Groonga 12.0.2 or later.

  • Removed needless Groonga::IndexColumn#with_weight?.

  • Added support for :missing_mode and :invalid_mode for scalar column and vector column. This requires Groonga 12.0.2 or later.

12.0.0: 2022-02-09

改善

  • Added support for Ruby 3.1.

11.0.6: 2021-09-24

改善

  • Installed Groonga automatically when native package isn’t installed automatically. [GitHub#204][Patch by skawaji]

感謝

  • skawaji

11.0.0: 2021-02-09

改善

10.0.6: 2020-09-01

修正

  • Windows版で gem install rroonga に失敗する問題を修正しました。

10.0.2: 2020-04-29

改善

  • Added support for Float32 in Groonga 10.0.2.

  • [doc] Fixed markup of a image in tutorial [GitHub#192][Patched by takahashim]

感謝

  • takahashim

10.0.1: 2020-04-02

改善

  • Added support for creating a table with normalizer with options

  • Windows: Added Ruby 2.7 support.

  • Windows: Dropped Ruby 2.3.

    • This version has been EOL.
  • Dropped fat gem support.

9.0.7: 2019-08-29

改善

  • Groonga::Object#lexicon? Added.

  • Groonga::IndexColumn Added support “INDEX_LARGE”.

  • Groonga::IndexCursor#set_min? Added.

  • Groonga::IndexCursor#set_min= Added.

  • Groonga::Context#force_match_escalation? Added.

  • Groonga::Context#force_match_escalation= Added.

  • Groonga::Object#id_accessor? Added.

  • Groonga::Logger.flags Added support for thread id option.

  • Groonga::Object#bulk? Added.

  • Groonga::Object#value_accessor? Added.

  • Groonga::Table Delegate support_score? from Groonga::Record to Groonga::Table.

  • Groonga::Flashable Added support dependent option.

  • Groonga::Object#score_accessor? Added.

  • {Groonga::Object#nsubrecs_accessor? } Added.

  • Translate a part of explanation of Groonga::Table into English.

9.0.3: 2019-05-10

改善

  • Windows: Added Ruby 2.6 support.

9.0.2: 2019-05-10

改善

  • Disable groonga-httpd by default.

  • Added support for “–with-groonga-configure-options”. [GitHub#146][Reported by Tomás Pollak]

  • Groonga::RegexpExpressionBuilder: Added support (?-mix:XXX) for searching of regular expression. [groonga-dev,04694][Reported by Masatoshi SEKI]

  • Use “groonga-latest.tar.gz” for build Groonga.

  • Groonga::Schema#create_lexicon: Added.

感謝

  • Tomás Pollak

  • Masatoshi SEKI

7.1.1: 2018-01-30

改善

  • Groonga 7.1.1をサポートしました。Groonga 7.1.0以前はサポートしません。

  • Added Apache Arrow support:

    • Groonga::Table#load_arrow

    • Groonga::Table#dump_arrow

  • Windows: Added Ruby 2.4 or later support. [groonga-dev,04565][Reported by ongaeshi]

  • Groonga::ColumnCache: Added.

  • Groonga::Expression#parse: Added :no_syntax_error option.

  • Groonga::Context#support_arrow?: Added.

  • Groonga::Procedure#stable?: Added.

  • Groonga::Array: Removed queue support.

  • Groonga::QueryLogger.flags: Added.

  • Groonga::QueryLogger.flags=: Added.

  • Groonga::Object#corrupt?: Added.

  • Groonga::Object#disk_usage: Added.

感謝

  • naofumi-fujii

  • おんがえしさん

7.0.2: 2017-04-29

改善

  • Supported Groonga 7.0.2. Groonga 7.0.1 or older aren’t supported.

  • Groonga::IndexColumn#open_cursor: Supported opening a cursor by token.

  • Groonga::IndexColumn#[]: Supported a token.

  • Groonga::InvertedIndexCursor#closed?: Added.

  • Groonga::Table::KeySupport#key?: Added.

  • Groonga::Table::KeySupport#has_key?: Deprecated. Use Groonga::Table::KeySupport#key? instead.

  • Groonga::DataColumn#apply_window_function: Supported :group_keys.

  • Groonga::Column#weight_vector?: Added.

  • Groonga::DataColumn#apply_expression: Added.

  • Groonga::Column#data?: Added.

  • Groonga::DefaultCache: Added.

6.1.3: 2017-01-12

改善

  • Groonga 6.1.3をサポートしました。Groonga 6.1.0以前はサポートしません。

  • Groonga::Context#support_zstd?を追加しました。

  • Groonga::ZstdErrorを追加しました。

  • Zstandardによる圧縮をサポートしました。 Zstandardが有効になっている環境の場合、Zstandardによってカラムを圧縮できます。 使い方:

      Groonga::Schema.define do |schema|
        schema.create_table("Posts") do |table|
          table.short_text("title", :compress => :zstandard)
          # shortened form
          # table.short_text("title", :compress => :zstd)
        end
      end
    
  • Groonga::Logger::FlagsにPIDを追加しました。

  • Groonga::Logger.flagsを追加しました。

  • Groonga::Logger.flags=を追加しました。

6.1.0: 2016-11-07

改善

  • Groonga::Table#define_index_column: 小さなサイズや中サイズのインデックスカラムを作成するために :size オプションをサポートしました。 このオプションには :small:medium を指定します。

6.0.9: 2016-10-07

改善

  • Groonga 6.0.9をサポートしました。Groonga 6.0.8以前はサポートしません。
  • Groonga::Database#remove_force: 壊れたオブジェクトを削除するメソッドを追加しました。
  • Groonga::ID.builtin_type?: 組み込み型かどうかチェックする述語メソッドを追加しました。

6.0.7: 2016-08-13

改善

  • Groonga 6.0.7をサポートしました。Groonga 6.0.5以前はサポートしません。

  • Improved integration with libraries that uses at_exit such as test-unit.

修正

  • Groonga::FixSizeColumn#inspect: Fixed wrong flags.

  • Groonga::VariableSizeColumn#inspect: Fixed wrong flags.

6.0.5: 2016-07-15

改善

  • Groonga 6.0.5をサポートしました。Groonga 6.0.4以前はサポートしません。

  • Groonga::ID: Added a module that provided object ID related features.

  • Groonga::ID.builtin?: Added a new predicate method that checks whether the given ID is ID for builtin object or not.

  • Groonga::ID::NIL: Added a new constant that represents invalid ID.

  • Groonga::ID::MAX: Added a new constant that represents the maximum ID.

  • Groonga::Name: Added a new module that provides object name related features.

  • Groonga::Name.column?: Added a new predicate method that checks whether the given name is column object name or not.

  • Groonga::Object#column?: Added a new predicate for column.

  • Groonga::Object#reference_column?: Added a new predicate for column that uses table as value type.

  • Groonga::Object#index_column?: Added a new predicate for index column.

  • Groonga::Object#touch: Added a new method that updates the last modified time of the object.

  • Groonga::Object#last_modified: Added a new method that returns the last modified time of the object.

  • Groonga::Object#dirty?: Added a new method that checks whether the object is changed after the last flush.

6.0.4: 2016-06-14

改善

  • Groonga 6.0.4をサポートしました。Groonga 6.0.3以前はサポートしません。

  • Groonga::WindowFunctionError: Added a new error class.

  • Groonga::ProcedureType::WINDOW_FUNCTION: Added a new procedure type for window function.

  • Groonga::Object#window_function_procedure?: Added a new predicate for window function.

  • Groonga::DataColumn#apply_window_function: Added a new method to apply a window function.

6.0.2: 2016-05-18

改善

  • Groonga 6.0.2をサポートしました。Groonga 6.0.1以前はサポートしません。

  • Groonga::Table#select: Supported nested array as conditions.

  • Supported HTTP proxy with authentication on install. [GitHub#129] [Patch by ngram]

  • Groonga::Cancel: Added a new error class.

  • Groonga::Table#select: Supported passing Hash as function argument.

  • Groonga::Hash.create: Added :key_large option to create hash table that supports 1TiB total key size.

  • Groonga::Type#text_family?: Added a new predicate that returns true for ShortText, Text and LongText types.

  • Groonga::Type#number_family?: Added a new predicate that returns true for UInt8, Int8, …, UInt64, Int64 and Float types.

  • Groonga::Type#builtin?: Added a new predicate that returns true for builtin types such as Int32.

  • Groonga::Object#remove: Added :dependent option to remove all tables and columns that depend on the object.

  • Groonga::RequestCanceler: Added an interface that cancels one or more requests.

  • Groonga::RequestTimer: Added an interface that provides request timeout feature.

6.0.0: 2016-03-06

改善

  • Groonga 6.0.0をサポートしました。Groonga 5.1.2以前はサポートしません。

  • Groonga::Operator::AND_NOTのオペレーターとして-をサポートしました。

  • grndump: :max_recordsオプションを追加しました。 [Genki Takiuchiさんがパッチ提供]

  • Groonga::Table#select: 関数呼び出しの引数に数値・時刻を指定できるようになりました。

  • Groonga::Table#select: 条件ブロック内で数値オブジェクトを自動でレコードIDに変換することをやめました。右辺値としてレコードIDを指定したい場合は、Groonga::Recordオブジェクトを渡してください。このリリースから数値オブジェクトをIDではなくキーとして扱います。なぜなら、過去のリリースでは数値オブジェクトをInt/UInt関連の型のキーとして指定できなかったからです。数値オブジェクトは常にキーではなくIDとして扱われていました。

    これは非互換な変更ですがこの変更をいれました。それは、この動作はバグと判断したためです。

  • Bundler.requireのためにrequire "rroonga"をサポートしました。 [Fumiaki MATSUSHIMAさんがパッチ提供]

  • Groonga::Plugin.namesを追加しました。

  • Groonga::Config#deleteを追加しました。

  • Groonga::Config#eachを追加しました。

  • Groonga::Indexを追加しました。これはインデックスカラムとセクションを含みます。

  • Groonga::Column#find_indexesを追加しました。 これはGroonga::Indexの配列を返します。

  • Groonga::Column#indexesを非推奨にしました。 代わりにGroonga::Column#find_indexesを使ってください。

  • Groonga.error_messageを追加しました。

  • Groonga::Table#selectのブロック内でメソッドスタイルの関数呼び出しをサポートしました。これはRubyらしいAPIです。

    例:

    @shops.select do |record|
      record.location.geo_in_rectangle("35.7185,139.7912",
                                       "35.7065,139.8069")
    end
    

感謝

  • Genki Takiuchiさん

  • Fumiaki MATSUSHIMAさん

5.1.1: 2016-01-18

改善

  • Supported Groonga 5.1.1. Groonga 5.0.9 or older aren’t supported.
  • Supported accessor in Groonga::Table#geo_sort.
  • Improved performance of searching with empty condition.
  • Added Groonga::Object#accessor?.
  • Added Groonga::Object#key_accessor?.
  • Added Groonga::Database#reindex.
  • Added Groonga::Table::KeySupport#reindex.
  • Added Groonga::FixSizeColumn#reindex.
  • Added Groonga::VariableSizeColumn#reindex.
  • Added Groonga::IndexColumn#reindex.
  • Added Groonga.package_label.
  • Renamed Groonga::Conf to Groonga::Config.
  • Renamed Groonga::Context#conf to Groonga::Context#config.

5.0.9: 2015-11-10

改善

  • Supported Groonga 5.0.9. Groonga 5.0.8 or older aren’t supported.
  • Added Groonga::Context#conf that returns Groonga::Conf.
  • Added Groonga::Conf#[] that returns a database level configuration value.
  • Added Groonga::Conf#[]= that sets a database level configuration value.
  • Added Groonga::Table#geo_sort= that sorts by geo point.

5.0.8: 2015-10-07

改善

  • Changed to use gmake preferentially for auto Groonga build.
  • Supported Groonga 5.0.8. Groonga 5.0.7 or older aren’t supported.
  • Added Groonga::Context#opened? that checks whether object with the specified ID is opened or not.
  • Supported calling a function in Groonga::Table#select by record.call("function", arg1, arg2, ...).
  • Windows: Changed to cross compile system to rake-compiler-dock from Vagrant based cross compile system. [GitHub#108] [Patch by Hiroshi Hatake]

感謝

  • Hiroshi Hatake

5.0.5: 2015-09-09

改善

  • Supported Groonga 5.0.7. Groonga 5.0.6 or older aren’t supported.
  • Added Groonga::Object#selector_only_procedure?.
  • Supported Groonga::Table#open_cursor with :order_by => :key against Groonga::DoubleArrayTrie.
  • Added Groonga::Database#unmap.
  • Added Groonga::Thread.limit.
  • Added Groonga::Thread.limit=.
  • Added Groonga::Thread.limit_getter=.
  • Added Groonga::Thread.limit_setter=.
  • Added Groonga::WindowsEventLogger.register.
  • Added Groonga::Logger.max_level.
  • Added Groonga::Logger.max_level=.

修正

  • grndump: Fixed an error when --order-by=key is specified against database that has Groonga::Array or Groonga::Hash.

5.0.4: 2015-07-13

改善

5.0.3: 2015-06-10

改善

感謝

  • takiy33

5.0.2: 2015-05-18

改善

  • Added Groonga::Plugin.ruby_suffix.
  • Groonga::Hash is used as the default table type when :key_type is specified in Groonga::Schema. Groonga::Array was used as the default table type. It’s a backward incompatible change. But nobody will not stumped. Because :key_type is specified but :type isn’t specified case is a bug of user’s program.
  • Added Groonga::Logger#log.
  • Added Groonga::Logger.rotate_threshold_size.
  • Added Groonga::Logger.rotate_threshold_size=.
  • Added Groonga::QueryLogger#log.
  • Added Groonga::QueryLogger.rotate_threshold_size.
  • Added Groonga::QueryLogger.rotate_threshold_size=.
  • Implemented Groonga::QueryLogger::Flags.parse.

5.0.1: 2015-04-14

改善

  • Supported Groonga 5.0.2. Groonga 5.0.1 or older aren’t supported.
  • Added Groonga::Expression#estimate_size.
  • Added closed check in #encoding. [GitHub#54] [Reported by yui-knk]
  • [windows] Supported Ruby 2.2.
  • Supported Groonga::Normalizer.normalize(""). [GitHub#55] [Reported by Tasuku SUENAGA]
  • Added Groonga::ScorerError.
  • Added shortcuts for TokenRegexp to Groonga::Schema.
  • Added Groonga::Operator::REGEXP.
  • Added Groonga::Plugin.unregister.
  • Added Groonga::Context#unregister_plugin.
  • Changed Groonga::Operator to class from module. It’s a backward incompatible change but nobody will not be effected.
  • Removed unused :id option from the followings:
    • Groonga::Column#clear_lock
    • Groonga::Column#locked?
    • Groonga::Table#clear_lock
    • Groonga::Table#locked?
  • Added Groonga::EqualOperator#exec.
  • Added Groonga::NotEqualOperator#exec.
  • Added Groonga::LessOperator#exec.
  • Added Groonga::GreaterOperator#exec.
  • Added Groonga::LessEqualOperator#exec.
  • Added Groonga::GreaterEqualOperator#exec.
  • Added Groonga::MatchOperator#exec.
  • Added Groonga::PrefixOperator#exec.
  • Added Groonga::RegexpOperator#exec.
  • Added Groonga::ProcedureType::TOKEN_FILTER.
  • Added Groonga::ProcedureType::SCORER.
  • Added Groonga::Operator#to_s.
  • Supported Groonga::IndexColumn#estimate_size against query.
  • Supported Groonga::IndexColumn#estimate_size against lexicon cursor.
  • Added Groonga::Object#table?.
  • Added Groonga::Object#procedure?.
  • Added Groonga::Object#function_procedure?.
  • Added Groonga::Object#selector_procedure?.
  • Added Groonga::Object#scorer_procedure?.
  • Supported regular expression in Groonga::Table#select block.

感謝

  • yui-knk
  • Tasuku SUENAGA

5.0.0: 2015-02-16

改善

  • Supported Groonga 5.0.0. Groonga 4.1.1 or older aren’t supported.
  • Added flags for Groonga::Normalizer.normalize. [GitHub#44] [Patch by Tasuku SUENAGA a.k.a. gunyarakun]

    Groonga::Normalizer.normalize("AbC Def gh")                         #=> "abcdefgh"
    Groonga::Normalizer.normalize("AbC Def gh", :remove_blank => true)  #=> "abcdefgh"
    Groonga::Normalizer.normalize("AbC Def gh", :remove_blank => false) #=> "abc def gh"
    
  • Supported drilldown by multiple keys in Groonga::Table#group.
  • Supported calculation for drilldown in Groonga::Table#group.

感謝

  • Tasuku SUENAGA a.k.a. gunyarakun

4.0.8: 2015-01-08

改善

  • Supported Groonga 4.0.9. Groonga 4.0.8 or older aren’t supported.
  • Added Groonga::Column#truncate. [GitHub#41] [Patch by Hiroshi Hatake]
  • Added Groonga::Database#recover.

修正

感謝

  • Hiroshi Hatake

4.0.7: 2014-12-12

改善

  • Supported Groonga 4.0.8. Groonga 4.0.7 or older aren’t supported.
  • Added :reuse_posting_object option to Groonga::IndexCursor#each. The option improves performance by reducing memory allocation. The option is disabled by default because reusing the same object isn’t Rubyish.
  • Added Groonga::IndexColumn#estimate_size. [GitHub#38]
  • Accepted string for integer, unsigned integer and float type key.

4.0.6: 2014-11-06

改善

  • Supported Groonga 4.0.7. [GitHub#28]
    • Changed Groonga::Context#support_lzo? always returns false.
    • Added Groonga::Context#support_lz4?.
    • Supported :lz4 in Groonga::Table#define_column options.
    • Supported :lz4 in Groonga::VariableSizeColumn#compressed? options.
    • Added Groonga::LZ4Error.
    • [grndump] Supported COMPRESS_ZLIB and COMPRESS_LZ4 flags.
    • Added Groonga::Table::KeySupport#token_filters.
    • Added Groonga::Table::KeySupport#token_filters=.
    • Supported :token_filters in Groonga::Hash.create options.
    • Supported :token_filters in Groonga::PatriciaTrie.create options.
    • Supported :token_filters in Groonga::DoubleArrayTrie.create options.
    • Supported :token_filters in Groonga::Schema.create_table options.
    • Added Groonga::TokenFilterError.
    • [grndump] Supported token filters.
  • Added Groonga::Expression#keywords. [GitHub#30]
  • Stopped to require logger object as the first argument of Groonga::Logger.register when block is specified.

修正

  • [doc] Removed deprecated example. [GitHub#26] [Patch by ongaeshi]
  • Fixed a bug that a column assignment raises an error when you assign value with type A and then assign value type B again. [GitHub#27] [Patch by Daisuke Goto]
  • Fixed a memory leak in Groonga::PatriciaTrie#open_near_cursor.
  • Fixed a bug that you can access a column renamed by Groonga::Column#rename with old name. [GitHub#29] [Patch by Daisuke Goto]
  • [doc] Fixed wrong option name of Groonga::Logger.register.

感謝

  • ongaeshi
  • Daisuke Goto

4.0.5: 2014-10-05

改善

  • [windows] クロスビルド用タスクを追加。
  • Groonga::DoubleArrayTrie#update を追加。 [GitHub#24] [Masafumi Yokoyamaさんがパッチ提供]
  • Groonga::Record#rename を追加。
  • [windows] デバッグフラグを無効にした。

修正

  • Groonga::Table::KeySupport#deleteに :id => true オプションを追加。Groonga::Table::KeySupport#delete はIDとキーの両方を受け入れていて、数値が渡されたときはIDとして扱われます。しかし、キーには数値も使えます。その場合、キーによる削除ができません。そこで、 Groonga::Table::KeySupport#delete(id, :id => true) というAPIを追加しました。この変更は後方互換性がありませんが、現在のAPIはバグなので許容します。

感謝

  • Masafumi Yokoyamaさん

4.0.4: 2014-08-29

改善

  • Supported Groonga 4.0.4 or later. Groonga 4.0.3 or older are not supported.
  • Added Groonga::ProcedureType that has constants as GRN_PROC_XXX.
  • Added Groonga::Procedure#type as grn_proc_get_type().

    procedure = Groonga["TokenBigram"]
    p procedure.type == Groonga::ProcedureType::TOKENIZER  #=> true
    
  • Avoided a crash when Groonga::Record#inspect is called on exit. [GitHub#18] [Reported by Ippei Obayashi]
  • Updated Free Software Foundation address. [Masafumi Yokoyama]
  • Supported reference weight vector. It requires Groonga 4.0.4 or later.
  • Updated homepage in gemspec to use ranguba.org. [Masafumi Yokoyama]
  • Reduce memory usage without GC.

修正

  • GCに関連したクラッシュを修正。(Groonga::Table#group中にGCが動いた場合など)

感謝

  • Ippei Obayashiさん
  • uu59さん
  • cosmo0920さん

4.0.3: 2014-06-04

修正

  • [windows] load errorが発生する問題を修正。これはGroongaの問題だったので問題を修正したGroongaをバンドルしなおした。 [groonga-dev,02398][Masafumi Yokoyama報告]

感謝

  • Masafumi Yokoyamaさん

4.0.2: 2014-05-29

改善

  • dump中の不必要な --key_type オプションを削除。 [Genki Takiuchiさんが報告]
  • Groonga::IndexColumn#inspectにソースの情報を追加。
  • マルチカラムインデックスではデフォルトで with_section フラグを有効にした。 参考: Groonga::Schema::TableDefinition#index
  • トークナイザーを持っているテーブルでは、デフォルトで with_position フラグを 有効にした。 TokenDelimit トークナイザーをして with_position フラグを無効に するためには明示的に :with_position => false を指定すること。 なお、 TokenDelimitwith_position フラグが不要なトークナイザーである。 参考: Groonga::Schema.create_table

修正

  • [GitHub#16] Groonga::Table#columnのメモリリークを修正。 [ruticeさんが報告]

感謝

  • ruticeさん
  • Genki Takiuchiさん

4.0.1: 2014-04-04

改善

  • Supported Groonga 4.0.1. Groonga 4.0.0 or older are not supported.
  • Supported no weight match column case.

    table.select do |record|
      match_target = record.match_target do |target|
        target.column
      end
      match_target =~ keyword
    end
    
  • Supported weight vector.
  • grndump: Changed to use --normalizer instead of KEY_NORMALIZE. Old Groonga can’t restore dumped database.
  • Groonga::IndexColumn#search: Added mode option.
  • Groonga::IndexColumn#search: Added weight option.
  • Accepted String as option key.

修正

  • Ruby構文でのインデックスダンプ時にインデックスオプション情報が抜けてしまう問題を修正。

4.0.0: 2014-02-09

改善

  • Groonga 4.0.0対応。Groonga 3.1.2以前のサポートを廃止。
  • インストールドキュメントを追加。[おんがえしさんがパッチ提供]

感謝

  • おんがえしさん

3.1.2: 2014-01-29

改善

  • Groonga 3.1.2対応。Groonga 3.1.1以前の対応を終了。
  • Groonga::Table#support_value?を追加。
  • Groonga::Record#support_value?を追加。
  • _value の値をGroonga::Record#attributesの結果に追加。 [groonga-dev,02046] [おんがえしさんが提案]
  • カラムの値をGroonga::Record#inspectの結果に追加。 [groonga-dev,02048] [おんがえしさんが提案]
  • grndump: インデックスのスキーマを出力するかどうかを切り替える --dump-indexes オプションを追加。インデックスのスキーマだけをダンプするときに有用。
  • Groonga.lock_timeoutを追加。
  • Groonga.lock_timeout=を追加。

感謝

  • おんがえしさん

3.1.1: 2013-12-29

改善

  • Groonga 3.1.1対応。
  • [doc] 英語用メーリングリストとしてGroonga-talkを使うようにした。 [GitHub#14] [Masafumi Yokoyamaさんがパッチ提供]
  • Groonga::Expression#append_operation がオペレーター名に対応。
  • Groonga::Expression#append_constant がオペレーター名に対応。
  • Groonga::Expression#append_object がオペレーター名に対応。

感謝

  • Masafumi Yokoyamaさん

3.1.0: 2013-11-29

改善

  • 自動でGroongaをビルドする時にエラーになりにくくした。 [しまだこうじさんが報告]
  • 指定したデータベースの詳細を表示する groonga-database-inspect を追加。 [Genki Takiuchiさんが提案]
  • Groonga::Database#tables が未知のオブジェクトがあっても例外をあげずに無視するようになった。このように変更した理由は、このメッソッドは存在しているテーブルが欲しい、という要求に応えるためのメソッドであるため、存在しないオブジェクトがあるかどうかはこのメソッドにとって重要なことではないから。

修正

  • Groonga::Expression#parse がすべての種類のモード・オペレーターを受け取れない問題を修正。

感謝

  • しまだこうじさん
  • Genki Takiuchiさん

3.0.9: 2013-10-29

改善

  • Groonga 3.0.9対応
  • Groonga::Object#removeでエラーが発生した時にエラーメッセージも含めるようにした。

修正

  • インデックスカラムのソースに nil を指定するとクラッシュする問題を修正した。

3.0.8: 2013-09-29

改善

  • groonga 3.0.8サポート。
  • x64-mingw32 Rubyサポート。
  • Ruby 2.1.0 preview1サポート。

3.0.7: 2013-09-19

改善

  • Groonga::Table::KeySupport#tokenizeを追加。groonga 3.0.8が必要だが、groonga 3.0.8はまだリリースされていない。
  • Groonga::Context#selectの戻り値オブジェクトをgroonga-client gemの戻り値オブジェクトに変更。これは非互換の変更である。いくつかのAPIが変わっている。例えば、 drill_downdrilldowns になっている。戻り値オブジェクトの詳細は Groonga::Client::Response::Select を参照。 ** groonga-client gem、groogna-command gem、gqtp gemに依存するようになった。

修正

  • groongaの自動インストールが失敗するバグを修正。 [GitHub#12][Keita Hagaさんがパッチ提供]

感謝

  • Keita Hagaさん

3.0.6: 2013-09-13

改善

  • Int8/UInt8/Int16/UInt16がキーのテーブルを参照している参照型のカラムの読み書きをサポート。

3.0.5: 2013-07-29

改善

  • [dumper] supported dumping of DoubleArrayTrie.
  • Supported Int8/UInt8/Int16/UInt16 to Ruby conversion. [groonga-dev,01524][Reported by Masaharu YOSHIOKA]
  • Added memory pool mechanism to reduce GC easily. Groonga::Context#push_memory_pool and Groonga::Context#pop_memory_pool are added. You can close temporary table objects automatically:

    context.push_memory_pool do
      # create tempoeray table objects by select, group, sort and so on...
    end
    # created tempoeray table objects are closed automatically
    
  • Supported max int32 over Fixnum [Reported by xtuaok]

修正

  • [dumper] カラムのないテーブルがダンプされない問題を修正。

感謝

  • 吉岡 真治さん
  • xtuaokさん

3.0.4: 2013-07-04

修正

  • Windows用のrroogna 3.0.3 gemパッケージを修正。

3.0.3: 2013-07-04

改善

  • groonga >= 3.0.5を必須とした。
  • Groonga::Table#selectの結果テーブル作成時のエラーチェックを追加。
  • Groonga::Operator::AND_NOTを追加。
  • Groonga::Operator::BUTを非推奨にした。これはgroongaが非推奨にしたためである。 代わりにGroonga::Operator::AND_NOTを使うこと。
  • Groonga::Array#unblockを追加。
  • Groonga::Table#groupに :max_n_sub_records オプションを追加。
  • Groonga::Table#each_sub_recordを追加。
  • groongaからベクターの値を読み込めるようにした。
  • Groonga::Expression#define_variableに :reference => true オプションを追加。 これは、参照型の変数を定義するためのものである。
  • レコードのサブレコードを返すGroonga::Record#sub_recordsを追加。 サブレコードはGroonga::SubRecordsのインスタンスである。

修正

  • Groonga::Expression#[]の返り値の型を修正。値そのものではなくGroonga::Variableを返すようにした。注意: これは後方非互換の変更である。

3.0.2: 2013-05-29

改善

  • groonga >= 3.0.4を必須にした。
  • Timeのベクターを設定・取得できるようにした。
  • [grndump] インデックスのみのテーブルはダンプしないようにした。これはダンプする必要がないためである。
  • Groonga::Record#to_jsonを追加。
  • Groonga::IndexColumn#addを追加。
  • Groonga::IndexColumn#deleteを追加。
  • Groonga::IndexColumn#updateを追加。
  • Groonga::IndexColumn#[]= を非推奨にした。代わりにGroonga::IndexColumn#add、Groonga::IndexColumn#delete、Groonga::IndexColumn#updateを使うこと。
  • Groonga::Table#have_n_sub_records_space?を追加。
  • [grndump] スキーマのダンプを無効にしているときは”register PLUGIN”もダンプしないようにした。

修正

  • [grndump] 参照されているテーブルよりも前に参照しているテーブルがダンプされることがある問題を修正。

3.0.1: 2013-05-01

改善

修正

  • エラー発生時にメモリリークする問題を修正。

感謝

  • @takkanmさん

3.0.0: 2013-03-29

改善

  • groonga >= 3.0.2を必須にした。
  • Groonga::Context#create_databaseがブロックをサポートした。ブロックを渡すとブロックを抜ける時に作成したデータベースを閉じる。
  • [実験的] Groonga::Array#pushを追加した。
  • [実験的] Groonga::Array#pullを追加した。
  • 閉じたオブジェクトのチェックを増やした。 [GitHub #8][KITAITI Makotoさんが報告]
  • Groonga::Context#restoreがブロックをサポートした。ブロックを渡すと実行したコマンドとそのレスポンスをブロックに渡す。

感謝

  • KITAITI Makotoさん

2.1.3: 2013-01-29

改善

  • Removed Groonga::View removed in groonga 2.1.2.
  • [doc] Added tutorial in English. ** for English:http://ranguba.org/rroonga/en/file.tutorial.html ** for Japanese:http://ranguba.org/rroonga/ja/file.tutorial.html
  • [context] Added Context#restore. This method restores command dumped by “grndump” command. Please see example below:

    dumped_commands = File.read("dump.grn")
    context.restore(dumped_commands)
    
  • Supported new logger API in groonga. Old API isn’t used anymore.
  • For installing groonga with this gem: ** Stopped to install documentation about groonga. See “Web site”:http://groonga.org/docs/ instead. ** Stopped to build static library because it isn’t used by rroonga.

修正

  • [dumper] Reduced needless new lines in dumped commands.

  • ラングバプロジェクト向け: ** [template] rubyforgeスポンサーのタグを削除。 ** [template] piwikのタグを削除。 ** [template] 日本語のリファレンスのURLを修正。

2.1.2: 2013-01-04

修正

  • GC関係のバグを削除。

2.1.1: 2012-12-29

改善

  • groonga 2.1.0にキーの正規化に関する重大なバグがあったため、groonga 2.1.1を必須とした。

2.1.0: 2012-12-29

改善

  • Required groonga 2.1.0.
  • Supported mass record deletion with block. [groonga-dev,01138][Suggested by ongaeshi]
  • Added Groonga::Normalizer.normalize (experimental). It normalize string. e.g.)

    Groonga::Normalizer.normalize("AbC") # => "abc"
    

    Now, it removes any spaces by default, but it will be customized soon.

  • Supported :normalizer option in DoubleArrayTrie, PatriciaTrie, Hash, Schema when creating tables.
  • [table] Added using normalizer accessor.
  • [table] Used normalizer for checking key normalization is enabled or not.
  • Added groonga-index-dump tool (experimental). This tool dumps infomations for each index from DB. Dumped informations are contained at “INDEX_NAME.dump” files in “TARGET_TABLE_NAME.index_INDEX_COLUMN_NAME”. e.g.)

    $ cat index-dump.sdf
      table_create --name Video --flags TABLE_HASH_KEY --key_type UInt32
      table_create --name Tag --flags TABLE_HASH_KEY --key_type ShortText
      column_create --table Video --name title --flags COLUMN_SCALAR --type ShortText
      column_create --table Video --name tags --flags COLUMN_VECTOR --type Tag
      column_create --table Tag --name index_tags --flags COLUMN_INDEX --type Video --source tags
      load --table Video
      [
      {"_key":1,"title":"groonga Demo","tags":["IT","Server","groonga"]},
      {"_key":2,"title":"Ultra Baseball","tags":["Sports","Baseball"]},
      ]
    $ groonga --file index-dump.sdf -n index-dump.db
    $ groonga-index-dump --output-directory=path/to/index/ index-dump.db
    $ cd path/to/index/
    $ ls Tag.index_tags
      Baseball.dump  IT.dump       Server.dump  Sports.dump  groonga.dump
    $ cat path/to/index/Tag.index_tags/groonga.dump
      index: Tag.index_tags	term: <groonga>	domain: Tag	range: Video	have_section: false	have_weight: false	have_position: false
       weight	position        term_frequency	record
       0    2     1   Video[ 1 ].tags
    
  • Groonga::IndexColumn#open_cursorにフラグに関するオプション(:with_section, :with_weight, :with_position)を追加。 インデックスカラムを作るときにこれらオプションを指定していると、指定したオプションをデフォルトで使用可能になります。
  • [Snippet] 指定されたGroonga::Contextがデータベースと結びついていないときにエラーメッセージを表示するようにした。
  • [inspect] インデックスカラム関連のフラグ(WITH_SECTION, WITH_WEIGHT, WITH_POSITION)はインデックスカラムを表示するときにのみ表示するようにした。
  • [inspect] デフォルトのトークナイザーとノーマライザーの情報を表示するようにした。
  • Groonga::QueryLoggerをサポートした。このクラスはクエリログのロガーです。詳しくはリファレンスマニュアルをご覧ください。

変更

  • Move groonga-query-log-extract to groonga-query-log. Please install groogna-query-log gem to use this tool. how to install:

    gem install groonga-query-log
    
  • Returned Groonga::Array instead of Array by Table#sort. [GitHub: #8][Suggested by Genki Takiuchi] CAUTION: This is backward incompatible change. You need to use record.value to get the original record. The following code shows how to use old style:

    result_since_2_1_0 = table.sort(["sort_key"])
    result_before_2_1_0 = result_since_2_1_0.collect do |record|
      record.value
    end
    

感謝

  • ongaeshiさん
  • Genki Takiuchiさん

2.0.8: 2012-12-02

改善

  • groonga 2.0.9対応。

2.0.7: 2012-11-29

改善

  • Added Groonga::Posting#record. This method returns the record for the record ID in table.
  • Added Groonga::Posting#term. This method returns the record for the term ID in table.
  • Supported GRN_OBJ_KEY_VAR_SIZE for Groonga::Type#inspect. GRN_OBJ_KEY_CAR_SIZE specifies its column is variable size.
  • [Type] Added reader methods to Groonga::Type (#size and #flags).
  • [Type] Added predicate methods to Groonga::Type. Added methods are #fixed_size?, #variable_size?, #unsigned_integer?, #integer?, #float? and #geo_point?.

変更

  • クエリログ関連の機能を削除した。クエリログ関連の機能はgroonga-query-logというgemに移動しました。このgemは近日中にリリースする予定です。

2.0.6: 2012-10-25

改善

  • [dump] インデックスカラム作成のコマンドを最後(loadコマンドの後ろ)に出力するようにした。これは静的インデックス作成にするためのものです。
  • 単語抽出機能をサポート。構文は table.select {|record| record.key.term_extract(text)}
  • selectメソッドを使うときに:allow_leading_notオプションを使用できるようにした。このオプションで「ある単語が含まれない全てのレコード」を検索すると検索が遅くなります。またレコードが多い時にも時間がかかるので注意して使ってください。

変更

  • extconf.rbでデバッグ用ビルドに使うオプションを --with-debug から --enable-debug-log に変更。

修正

  • リファレンスの表示崩れを修正。

2.0.5: 2012-09-28

改善

  • groonga 2.0.7対応。
  • 古いgroongaと一緒に使うときに必要な処理を削除。
  • 様々なエラーチェックを追加。
  • Database#tablesを追加。[@temitanさんが提案]
  • Database, Table, TableCursor, IndexCursorの#eachでブロックが指定されてないときにはEnumeratorを返すようにした。
  • WGS84GeoPointクラスとTokyoGeoPointクラスを追加。
  • [dumper] WGS84GeoPointとTokyoGeoPointのダンプに対応。
  • [dumper] 外部エンコーディングがUTF-8以外の環境でも動作するようにした。
  • [dumper] ダンプ時にテーブルとカラム名でソートするようにした。
  • [dumper] 不正なバイトがあったときに無視するようにした。
  • [grndump] 不正な文字があったときに警告を出すようにした。
  • [grndump] 古いgroongaで作ったデータベースも正しくダンプできるようにした。
  • Groonga::Context#ruby_encoding を追加。
  • コード内に書かれていてリファレンスに表示されていなかったドキュメントをリファレンスに追加。

修正

  • groongaコマンドにバックスラッシュがあったときにエスケープするように修正した。

感謝

  • @temtanさん

2.0.4: 2012-05-02

修正

  • マッチカラムの重みが無視される問題を修正。

2.0.3: 2012-05-02

改善

  • groonga 2.0.2対応。
  • Groonga::Table#eachGroonga::Table#open_cursorと同じオプションを受け付けるようにした。
  • [grndump] --order-by=id オプションを追加。このオプションを使うと、キーではなくIDでレコードをソートしてダンプします。もし、レコードを削除していない場合はこのオプションを使うことでレコードIDを変更せずにレコードをリストアできます。 [#1341]
  • RubyInstall for WindowsのDevKitを使ったWindows上でのビルドをサポート。 [GitHub#6] [@ongaeshiさんがパッチ提供]
  • 類似文書検索をサポート。構文は table.select {|record| record.column.similar_search(text)}

修正

  • GC関連ででクラッシュするバグを修正。

感謝

  • ongaeshiさん

2.0.2: 2012-03-29

改善

  • groonga 2.0.1対応。
  • “ロゴ”:http://groonga.rubyforge.org/#logo を追加。

修正

  • Groonga::Snippetに関連したGCでクラッシュするバグを修正した。

2.0.0: 2012-03-22

改善

  • groonga 2.0.0対応。
  • [gem][windows] mswin用のパッケージを削除した。

修正

  • [test] バージョンのテストの失敗を修正した。 [GitHub#4] [@takkanmさんが報告]
  • Groonga::Expressionに関連したGCでクラッシュするバグを修正した。
  • [doc] 壊れたHTML出力を修正した。 [groonga-dev,00699] [平野さんが報告]

感謝

  • @takkanmさん
  • 平野さん

1.3.1: 2012-01-29

改善

  • groonga 1.3.0対応。
  • [schema] Int8、Int16、UInt8、UInt16に対応。
  • [schema] TokyoGeoPoint、WGS84GeoPointに対応。
  • [schema][dumper] Booleanや多くの組み込み型に対応。 [@mashiroさんが報告]
  • [schema] カラムの型として型オブジェクトを指定できるようになった。 [#1002]
  • Groonga::VariableSizeColumn#compressed?を追加。 [#1004]
  • Groonga::Record#score=を追加。
  • エンコードされた文字列の扱ったときのパフォーマンスを改良。
  • Groonga::Command::Builder.escape_valueを追加。

感謝

  • @mashiroさん

1.3.0: 2011-11-29

改善

  • [schema] db.tables/ディレクトリが空の場合は削除時に一緒に削除するようにした。
  • [schema] db.tables/table.columns/ディレクトリが空の場合は削除時に一緒に削除するようにした。
  • クエリログパーサを追加。
  • groonga-query-log-extractコマンドを追加。
  • grntestのログを解析するスクリプトを追加。
  • JSONへの依存関係を追加。
  • groonga 1.2.8対応。
  • groonga1.2.7以前のサポートを削除。
  • Groonga::Table#defragを追加。
  • Groonga::Table#renameを追加。
  • Groonga::Column#renameを追加。
  • Groonga::DoubleArrayTrieを追加。
  • [schema] テーブルのリネームに対応。
  • [schema] カラムのリネームに対応。
  • [schema] ダブル配列トライに対応。

変更

  • [schema] DBを移動してもそのまま使えるようにするために、デフォルトではパスに意味のある名前をつけないようにした。

修正

  • GC時にクラッシュする問題を修正。

1.2.9: 2011-09-16

修正

  • 不要なオブジェクトファイルが入っていたのを削除。

1.2.8: 2011-09-16

改善

  • Groonga::Table#selectに与えるブロックの中での!=メソッドに対応。
  • ハッシュライクなオプションに対応。
  • Ruby文法においてのベクター形式のダンプに対応。
  • 環境変数GRN_CTX_PER_DBに対応。(注意:この環境変数を使用する際は注意して使ってください)

1.2.7: 2011-08-29

改善

  • リソースを解放するGroonga::Snippet#closeを追加。

修正

  • Ruby 1.8.7でビルドできない問題を修正。

1.2.6: 2011-08-29

改善

  • groonga 1.2.5対応。
  • 追加直後のレコードかどうかを返す Groonga::Record#added? を追加。
  • カラムをデフラグする Groonga::VariableSizeColumn#defrag? を追加。
  • データベース中のすべての可変長カラムをデフラグする Groonga::Database#defrag を追加。
  • シンボルでのカラム名指定に対応。

修正

  • gem install時に*.rbのインストールに失敗する問題を修正。
  • メモリリークを修正。
  • 終了時にクラッシュする問題を修正。

1.2.5: 2011-08-05

改善

  • tar.gzでのパッケージ配布を再サポート。
  • Groonga::Context#closeを追加。
  • Groonga::Context#closed?を追加。
  • Groonga::ObjectClosedを非推奨にした。代わりにGroonga::Closedを使うこと。
  • grndump: ダンプしないテーブルを指定する–exclude-tableオプションを追加。
  • dump: パスが等しいかどうかのチェックを削除。

修正

  • [dump] 間違ったインデックス用テーブルを出力する問題を修正。
  • groongaの自動インストールを再サポート。

1.2.4: 2011-06-29

改善

  • groonga 1.2.3対応。

修正

  • groongaの自動インストールを再サポート。
  • pkg-config gemへの依存関係を追加。

1.2.3: 2011-06-27

修正

  • gemパッケージに含まれてしまったオブジェクトファイル(*.o)を削除。
  • 一部のリファレンスマニュアルの文字化けを修正。

1.2.2: 2011-06-27

改善

  • 英語版の「開発者向け情報」ページを作成。
  • “html:publish”タスクと”publish”に関しての説明を追加。

変更

  • Groonga::Record#attributesが重複したレコードが現れた際に同じattributesオブジェクトを返すようにした。
  • Groonga::Record#attributesにドキュメントを追加。
  • 「開発者向け情報」ページ内にあるドキュメント作成ツールを変更。
  • NEWS*.rdocとtutorial.texttileをディレクトリdoc/text/に移動。

修正

  • インデックスページにある「チュートリアル」ページへのリンクを修正。
  • インデックスページにある英語版「チュートリアル」ページへのリンクを修正。
  • 新しいgroongaのダウンロードURLに対応。 [mallowlabs]

感謝

  • mallowlabsさん

1.2.1: 2011-06-07

改善

  • Groonga::Table#paginationのドキュメントを追加。
  • grndumpをパッケージに追加。
  • Groonga::Record#attributesによるレコード内での再帰参照に対応した。(補足:ただし実験的実装)[mooz]
  • Groonga::Record#attributesにて_scoreも含めたデータを返すようにした。
  • Windowsの64bitに対応。(ただし、rubyの64bit版が存在しないため、動作環境がない)
  • Groonga::Postingを追加。
  • TokenDelimitのエイリアスに:delimit, :token_delimiterを追加。
  • Groonga::DatabaseDumper#dumpにてlexiconテーブルのダンプに対応。
  • Groonga::DatabaseDumper#dumpにてプラグインを含んだダンプに対応。
  • Groonga::IndexColumn#open_cursorを追加。[yoshihara]
  • Groonga::IndexCursorを追加。[yoshihara]
  • Groonga::Object#builtin?を追加。[yoshihara]

変更

  • カラムが削除される前に、そのカラムがあるかチェックするようにした。
  • ドキュメントからgrn式のページを削除。

感謝

  • moozさん
  • yoshiharaさん

1.2.0: 2011-04-01

改善

  • Supported groonga 1.2.0.
  • Added Groonga::Accessor#local_name.
  • Added Groonga::IndexColumn#with_section?.
  • Added Groonga::IndexColumn#with_weight?.
  • Added Groonga::IndexColumn#with_position?.
  • Groonga::Schema.dump supported groonga command format dump.
  • Added grndump command.
  • Groonga::Database#each supports order customize.
  • Added Groonga::Context#match_escalation_threshold.
  • Added Groonga::Context#match_escalation_threshold=.
  • Improved error message.
  • Supported Rubyish name like :short_text instead of the official type name like “ShortText” in Groonga::Schema.

1.1.0: 2011-02-09

改善

  • groonga 1.1.0対応。
  • Groonga::Plugin.registerを追加。

1.0.9: 2011-01-29

改善

  • Supported gem creation on Windows. [Patch by ongaeshi]
  • Supported generated directory that is created by Groonga::Schema removal when table or column is removed.
  • Added Groonga::Context#create_database.
  • Added Groonga::Context#open_database.
  • Added Groonga::Column#indexes.
  • Supported a notation for specifying index column as match target in Groonga::Table#select:

    table.select do |record|
      record.match("query") do |match_record|
        (match_record.index("Terms.title") * 1000) |
          (match_record.index("Terms.description") * 100)
          match_record.content
      end
    end
    
  • Supported prefix search in Groonga::Table#select:

    table.select do |record|
      record.name.prefix_search("groo")
    end
    
  • Supported suffix search in Groonga::Table#select:

    table.select do |record|
      record.name.suffix_search("nga")
    end
    
  • Supported :default_tokenizer schema dump.
  • Supported :key_normalize schema dump.
  • Supported pseudo columns by Groonga::Table#have_column?.
  • Supported pseudo columns by Groonga::Record#have_column?.

変更

  • Groonga::OperatoionをGroonga::Operatorに変更。(しばらくはGroonga::Operationも使えるが、非推奨。)

修正

  • 複数のGroonga::Contextを利用した場合にGroonga::Table#selectでクラッシュする問題を修正。
  • 例外発生時にクラッシュする問題を修正。

感謝

  • おんがえしさん

1.0.8: 2010-12-25

改善

  • Groonga::Schemaのn-gramトークナイザー検出処理を改良。

修正

  • selectでmatch_targetを利用した場合に生きているオブジェクトもGCされる問題を修正。<

1.0.7: 2010-12-19

修正

  • Ruby 1.8でRubyGemsでインストールされたpkg-configを使えるようにした。 [@kamipoさんが報告]
  • Groonga::Table#columnsのメモリリークを修正。

感謝

  • @kamipo

1.0.5: 2010-11-29

改善

  • Groonga::Schemaでgroongaの組み込み型をshort_textなどのように「小文字 + アンダースコア」でも指定できるようにした。

修正

  • GC時にクラッシュするバグを修正。 [Ryo Onodera]

1.0.4: 2010-11-29

改善

  • groonga 1.0.4対応。
  • Groonga::UnsupportedCommandVersionを追加。
  • Groonga::Record#support_sub_records?を追加。
  • Groonga::Record#eql?とGroonga::Record#hashを追加。(同じテーブルの同じレコードIDのオブジェクトを同一のHashキーとして扱う。)
  • pkg-config gemを利用するようにした。
  • Groonga::Table#select内でrecord_idメソッドを持っているメソッドはレコードとして扱うようにした。
  • Groonga::Record#record_idを追加。
  • Groonga::Table#support_key?を追加。
  • Groonga::Record#support_key?を追加。
  • Groonga::Record#support_key?を追加。
  • Groonga::Column#reference_key?を追加。
  • Groonga::Column#index_column?を追加。
  • Groonga::Schema#dumpを追加。
  • Groonga::Schemaが複数のカラムのインデックス作成に対応。
  • Groonga::Schemaで定義したオブジェクトに対応するファイル名にわかりやすいファイル名を利用するようにした。
  • Groonga::Schemaで参照カラムを定義時に参照先のテーブル名を省略可能になった。
  • Groonga::Schema.remove_columnを追加。
  • Groonga::Schemaでcreated_atカラムとupdated_atカラムを作るためのtimestamps便利メソッドを追加。
  • Groonga::Context#support_zlib?を追加。
  • Groonga::Context#support_lzo?を追加。
  • Groonga::Database#touchを追加。
  • Groonga::Table#exist?を追加。
  • Groonga::Record#valid?を追加。
  • Groonga::Column#vector?を追加。
  • Groonga::Column#scalar?を追加。
  • Groonga::Record#vector_column?を追加。
  • Groonga::Record#scalar_column?を追加。
  • レコードIDが必要なところにrecord_raw_idを持つオブジェクトならGroonga::Record以外も渡せるようにした。
  • Groonga::Record#record_raw_idを追加。
  • ベクタの参照カラムの値にArray以外でもto_aryを持つオブジェクトを設定できるようにした。

変更

  • Groonga::PatriciaTrie#open_cursorでは:order_byのデフォルト値として:keyを使うようにした。
  • 非推奨扱いのGroonga::Table::KeySupport#findを削除。
  • Groonga::Hash#createとGroonga::PatriciaTrie#createでキーの型を省略した場合はShortTextを使用するようにした。
  • Groonga::Schema#loadをGroonga::Schema#restoreに改名。
  • pkg-config 1.0.7対応。
  • Groonga::Column#index?を追加。Groonga::Column#index_column?は非推奨。
  • Groonga::Column#reference?を追加。Groonga::Column#reference_column?は非推奨。

修正

  • keyにインデックスを張れない問題を修正。
  • GC時にクラッシュする問題を修正。

1.0.1: 2010-09-12

修正

  • テーブル作成時に誤ったフラグを指定していた問題を修正。 [小野マトペさんが報告]

感謝

  • 小野マトペさん

1.0.0: 2010-08-29

  • groonga 1.0.0対応。
  • Groonga::CASErrorを追加。
  • Groonga::Table#open_cursorに:order_byオプションを追加。
  • 前方一致検索がマッチしたレコードを順に取り出すカーソルを作るGroonga::PatriciaTrie#open_prefix_cursorを追加。
  • ローマ字・ひらがなでカタカナのキーを検索するカーソルを作るGroonga::PatriciaTrie#open_rk_cursorを追加。
  • 値の近い順にレコードを取り出すカーソルを作るGroonga::PatriciaTrie#open_near_cursorを追加。
  • インデックスのソースに_keyを指定できるようになった。

0.9.5: 2010-07-20

  • groonga 0.7.4対応。
  • Groonga::Table#selectを改良:
  • 重み付きマッチに対応:

    Here is an example to match source column or title column and title column has high score:

      table.select do |record|
        (record.title * 10 | record.source) =~ "query"
      end
    
    • Supported and representation for and conditions:

      Here are examples that represents the same condition:

      table.select do |record|
        conditions = []
        conditions << record.title =~ "query"
        conditions << record.updated_at > Time.parse("2010-07-29T21:14:29+09:00")
        conditions
      end
      
      table.select do |record|
        (record.title =~ "query") &
          (record.updated_at > Time.parse("2010-07-29T21:14:29+09:00"))
      end
      
  • Provided groonga runtime version: Groonga::VERSION
  • Added Groonga::Table#support_sub_records?
  • Supported pagination: Groonga::Table#paginate, Groonga::Pagination

0.9.4: 2010-04-22

  • リリースミス修正。

0.9.3: 2010-04-22

  • リリースミス修正。

0.9.2: 2010-04-22

  • groonga 0.1.9対応。
  • たくさん。

0.9.1: 2010-02-09

  • Supported groonga 0.1.6

0.9.0: 2010-02-09

  • groonga 0.1.5対応
  • APIを追加
  • Groonga::Object#context
  • Groonga::Record#n_sub_records
  • Groonga::Context#send
  • Groonga::Context#receive
  • Groonga::PatriciaTrie#prefix_search [Tasuku SUENAGA]
  • Groonga::Object#path [Ryo Onodera]
  • Groonga::Object#lock [Tasuku SUENAGA]
  • Groonga::Object#unlock [Tasuku SUENAGA]
  • Groonga::Object#locked? [Tasuku SUENAGA]
  • Groonga::Object#temporary?
  • Groonga::Object#persistent?
  • Groonga::ObjectClosed
  • Groonga::Context.[]
  • Groonga::Table#column_value
  • Groonga::Table#set_column_value
  • APIを変更。
  • Groonga::Table#select, Groonga::Column#select
  • Groonga::Expressionも受け付けるようになった
  • grn式のシンタックスを指定する:syntaxオプションの追加
  • Groonga::Table#open_cursor
  • 開始位置を指定する:offsetオプションの追加
  • 最大レコード数を指定する:limitオプションの追加
  • Groonga::Expression.parseオプションの変更:
  • (nil (default) → :column) → (nil (default) → :query)
  • :column → 削除
  • :table → :query
  • :table_query → :query
  • :expression → :script
  • :language → :script
  • Groonga::Table#define_column, Groonga::Table#define_index_column
  • 永続テーブルをデフォルトにした
  • Groonga::Table#[] → Groonga::Table#value
  • Groonga::Table#[]= → Groonga::Table#set_value
  • Groonga::Table#find → Groonga::Table#[]
  • Groonga::Table#find → obsolete
  • Groonga::Table#[]= → 削除
  • Groonga::Table::KeySupport#[]=はGroonga::Table::KeySupport#addの別名
  • Groonga::Recordで存在しないカラムにアクセスしたときの例外をGroonga::InvalidArgumentからGroonga::NoSuchColumnに変更
  • Bug fixes
  • スキーマにコンテキストが伝搬されない問題の修正 [dara]
  • Groonga::PatriciaTrie#tag_keysが最後のテキストを返さない問題の修正 [Ryo Onodera]
  • extconf.rbにデバッグモードでビルドする–with-debugオプションを追加
  • Ruby 1.9.1でextconf.rbが失敗する問題の修正

感謝

  • daraさん
  • Ryo Onoderaさん
  • Tasuku SUENAGAさん

0.0.7: 2009-10-02

  • groonga 0.1.4対応
  • APIを追加
    • Groonga::PatriciaTrie#scan
    • Groonga::PatriciaTrie#tag_keys
    • Groonga::Expression#snippet
    • Groonga::Object#append
    • Groonga::Object#prepend

0.0.6: 2009-07-31

  • groonga 0.1.1対応
  • ドキュメントの修正 [id:mat_aki]
  • Groonga::Table#selectでのgrn式対応
  • APIを追加
    • Groonga::Table#union!
    • Groonga::Table#intersect!
    • Groonga::Table#differene!
    • Groonga::Table#merge!
    • tar.gzも提供 [id:m_seki]
  • メモリリークの修正

0.0.3: 2009-07-18

  • Groonga::Table::KeySupport#has_key?の追加 [#26145] [Tasuku SUENAGA]
  • カラム名が存在しない場合はGroonga::Record#[]が例外をあげるように変更。 [#26146] [Tasuku SUENAGA]
  • 32ビット環境をサポート [niku]
  • N-gramインデックスサーチのテストを追加 [dara]
  • APIを追加
    • Groonga::Record#incemrent!
    • Groonga::Record#decemrent!
    • Groonga::Record#lock
    • Groonga::Table#lock
    • Groonga::Schema: スキーマ定義用DSL
    • Groonga::Expression

0.0.2: 2009-06-04

  • groonga 0.0.8対応 [mori]
  • 性能向上: キー、値、ドメイン、レンジをキャッシュ
  • APIを改良
  • ドキュメントを追加
  • Ruby 1.9対応
  • Bug fixes:
  • Fixed install process [Tasuku SUENAGA]
  • メモリリークの修正

0.0.1: 2009-04-30

  • 最初のリリース!