NEWS

4.0.6: 2014-11-06

Improvements

  • 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::TableKeySupport#token_filters.
    • Added Groonga::TableKeySupport#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.

Fixes

  • [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.

Thanks

  • ongaeshi
  • Daisuke Goto

4.0.5: 2014-10-05

Improvements

  • [windows] Added cross build task.
  • Added Groonga::DoubleArrayTrie#update. [GitHub#24] [Patch by Masafumi Yokoyama]
  • Added Groonga::Record#rename.
  • [windows] Disabled debug flags.

Fixes

  • Added :id => true option to Groonga::Table::KeySupport#delete. Groonga::Table::KeySupport#delete accepts both ID and key. If passed value is integer, it is handled as ID. But we can use Int32 as key. In the case, we can’t delete a record by key. Therefore, we added Groonga::Table::KeySupport#delete(id, :id => true) API. It introduces a backward incompatibility, but it is OK because the current API is a bug.

Thanks

  • Masafumi Yokoyama

4.0.4: 2014-08-29

Improvements

  • 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::<span class="caps">TOKENIZER</span>  #=> true
      
  • Avoided a crash when Groonga::Record#inspct 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.

Fixes

  • Fixed a GC related crash when GC is run while Groonga::Table#group.

Thanks

  • Ippei Obayashi
  • uu59
  • cosmo0920

4.0.3: 2014-06-04

Fixes

  • [windows] Fixed a bug that Rroonga reports load error by bundling the fixed version Groonga package. [groonga-dev,02398][Reported by Masafumi Yokoyama]

Thanks

  • Masafumi Yokoyama

4.0.2: 2014-05-29

Improvements

  • Removed needless --key_type option in dump. [Reported by Genki Takiuchi]
  • Added sources information to Groonga::IndexColumn#inspect.
  • Enabled with_section flag for multiple column index by default. See Groonga::Schema::TableDefinition#index.
  • Enabled with_position flag for index of a table that has a default tokenizer by default. You need to specify :with_position => false explicitly to disable with_position flag for TokenDelimit. TokenDelimit is a tokenizer that doesn’t need with_position flag. See Groonga::Schema.create_table.

Fixes

  • [GitHub#16] Fixed a memory leak of Groonga::Table#column. [Reported by rutice]

Thanks

  • rutice
  • Genki Takiuchi

4.0.1: 2014-04-04

Improvements

  • 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::IndexClumn#search: Added mode option.
  • Groonga::IndexClumn#search: Added weight option.
  • Accepted String as option key.

Fixes

  • Fixed a bug that index dump drops index options in Ruby syntax.

4.0.0: 2014-02-09

Improvements

  • Supported Groonga 4.0.0. Groonga 3.1.2 or older are not supported.
  • Added install document. [Patch by ongaeshi]

Thanks

  • ongaeshi

3.1.2: 2014-01-29

Improvements

  • Supported Groonga 3.1.2. Groonga 3.1.1 or older are not supported.
  • Added Groonga::Table#support_value?.
  • Added Groonga::Record#support_value?.
  • Added _value value to Groonga::Record#attributes result. [groonga-dev,02046] [Suggested by ongaeshi]
  • Added column values to Groonga::Record#inspect result. [groonga-dev,02048] [Suggested by ongaeshi]
  • grndump: Added --dump-indexes option that controls schema for indexes output. It is useful to dump only schema for indexes.
  • Added Groonga.lock_timeout.
  • Added Groonga.lock_timeout=.

Thanks

  • ongaeshi

3.1.1: 2013-12-29

Improvements

  • Supported Groonga 3.1.1.
  • [groonga-database-inspect]: Added --no-tables option for hiding all table information.
  • [groonga-database-inspect]: Added --no-columns option for hiding all column information.
  • [doc] Updated English mailing list to use Groonga-talk. [GitHub#14] [Patch by Masafumi Yokoyama]
  • Groonga::Expression#append_operation supports operator name.
  • Groonga::Expression#append_constant supports operator name.
  • Groonga::Expression#append_object supports operator name.

Thanks

  • Masafumi Yokoyama

3.1.0: 2013-11-29

Improvements

  • Reduced build failure by automatically Groonga build. [Reported by SHIMADA Koji]
  • Added groonga-database-inspect command that inspects passed database. [Suggested by Genki Takiuchi]
  • Groonga::Database#tables ignores missing objects rather than raising an exception. Because the method is interested in only existing tables.

Fixes

  • Fixed a bug that Groonga::Expression#parse doesn’t accept all mode and operators.

Thanks

  • SHIMADA Koji
  • Genki Takiuchi

3.0.9: 2013-10-29

Improvements

  • Supported Groonga 3.0.9.
  • Supported showing error message on error in Groonga::Object#remove.

Fixes

  • Fixed a crash bug that is caused by assigning nil as source of index column.

3.0.8: 2013-09-29

Improvements

  • Supported groonga 3.0.8.
  • Supported x64-mingw32 Ruby.
  • Supported Ruby 2.1.0 preview1.

3.0.7: 2013-09-19

Improvements

  • Added Groonga::Table::KeySupport#tokenize. It requires groonga 3.0.8. Groonga 3.0.8 is not released yet.
  • Changed return object of Groonga::Context#select to groonga-client gem’s return object. It is a backward imcompatible change. Some APIs are changed. For example, drill_down is renamed to drilldowns. See Groonga::Client::Response::Select about rerturn object details.
    • Added groonga-client gem, groogna-command gem, gqtp gem dependencies.

Fixes

  • Fixed a bug that auto groonga installation is failed. [GitHub#12][Patch by Keita Haga]

Thanks

  • Keita Haga

3.0.6: 2013-09-13

Improvements

  • Supported accessing reference column that referes a table that uses Int8/UInt8/Int16/UInt16 key.

3.0.5: 2013-07-29

Improvements

  • [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</li>
    	<li>create tempoeray table objects by select, group, sort and so on…
      end</li>
    	<li>createed tempoeray table objects are closed automatically
      
  • Supported max int32 over Fixnum [Reported by xtuaok]

Fixes

  • [dumper] fixed a bug that no column table isn’t dumped.

Thanks

  • Masaharu YOSHIOKA
  • xtuaok

3.0.4: 2013-07-04

Fixes

  • Fixed a rroogna 3.0.3 gem package for Windows.

3.0.3: 2013-07-04

Improvements

  • Required groonga >= 3.0.5.
  • Added an error check for creating a result table of Groonga::Table#select.
  • Added Groonga::Operator::AND_NOT.
  • Deprecated Groonga::Operator::BUT because groonga deprecated it. Use Groonga::Operator::AND_NOT instead.
  • Added Groonga::Array#unblock.
  • Added :max_n_sub_records option to Groonga::Table#group.
  • Added Groonga::Table#each_sub_record.
  • Supported groonga to Ruby conversion for vector value.
  • Added :reference => true option to Groonga::Expression#define_variable that defines reference type variable.
  • Added Groonga::Record#sub_records that returns sub records for the record. Sub records is a Groonga::SubRecords instance.

Fixes

  • Fixed Groonga::Expression#[] return type. It returns Groonga::Variable instead of value itself. CAUTION: It is a backward incompatible change.

3.0.2: 2013-05-29

Improvements

  • Required groonga >= 3.0.4.
  • Supported set/get a vector of Time.
  • [grndump] Stopped to dump index only tables. They are needless.
  • Added Groonga::Record#to_json.
  • Added Groonga::IndexColumn#add.
  • Added Groonga::IndexColumn#delete.
  • Added Groonga::IndexColumn#update.
  • Deprecated Groonga::IndexColumn#[]=. Use Groonga::IndexColumn#add, Groonga::IndexColumn#delete or Groonga::IndexColumn#update instead.
  • Added Groonga::Table#have_n_sub_records_space?.
  • [grndump] Don’t dump “register PLUGIN” when schema dump is disabled.

Fixes

  • [grndump] Fixed a bug that reference tables may be dumpped before referenced tables.

3.0.1: 2013-05-01

Improvements

Fixes

  • Fixed a memory leak on error.

Thanks

  • takkanm

3.0.0: 2013-03-29

Improvements

  • Required groonga >= 3.0.2.
  • Added block support to Groonga::Context#create_database. If a block is given, created database is closed on block exit.
  • [experimental] Added Groonga::Array#push.
  • [experimental] Added Groonga::Array#pull.
  • Added more closed object checks. [GitHub #8][Reported by KITAITI Makoto]
  • Added block support to Groonga::Context#restore. If a block is given, command and its response are yielded.

Thanks

  • KITAITI Makoto

2.1.3: 2013-01-29

Improvements

  • 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 instead.
    • Stopped to build static library because it isn’t used by rroonga.

Fixes

  • [dumper] Reduced needless new lines in dumped commands.
  • For ranguba project:
    • [template] Removed needless block for sponsor by rubyforge.
    • [template] Removed needless piwik tag.
    • [template] Fixed URLs of references in Japanese.

2.1.2: 2013-01-04

Fixes

  • Fixed GC related crash. Table’s domain and range are also marked.

2.1.1: 2012-12-29

Improvements

  • Required groonga 2.1.1 because groonga 2.1.0 has a serious bug related to key normalization.

2.1.0: 2012-12-29

Improvements

  • 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
  • Added flag options to Groonga::IndexColumn#open_cursor. The flag options are :with_section, :with_weight, :with_position. They are enabled by default if each option is specified in creating a index column.
  • [Snippet] Showed the error message when specified context wasn’t associated with a database by Groonga::Database#open or #create.
  • [inspect] Supported to display index column related flags for index column only. “index column related flags” are WITH_SECTION, WITH_WEIGHT and WITH_POSITION.
  • [inspect] Added default tokenizer and normalizer infomation.
  • Supported Groonga::QueryLogger. This class is used to log query log. Please see its reference for detail.

Changes

  • 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

Thanks

  • ongaeshi
  • Genki Takiuchi

2.0.8: 2012-12-02

Improvements

  • Required groonga 2.0.9.

2.0.7: 2012-11-29

Improvements

  • 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?.

Changes

  • Removed query log related codes. This feature moved to groonga-query-log gem and it is relased soon.

2.0.6: 2012-10-25

Improvements

  • [dump] Put index columns at the bottom (after loads). It is for using offline index construction.
  • Added term_extract in Table#select by table.select {|record| record.key.term_extract(text)} syntax.
  • Supported :allow_leading_not as a option of #select. You should use this option carefully. It takes a long time to search all records which doesn’t include a word. In addition, when the number of records is large, to search them with this option is slowly.

Changes

  • Changed option name for debug build in extconf.rb from —with-debug to —enable-debug-log.

Fixes

  • Fixed display collapse in the references.

2.0.5: 2012-09-28

Improvements

  • Supported groonga 2.0.7.
  • Removed the workaround to install rroonga with old groonga.
  • Added more error checks.
  • Added Database#tables. [Suggested by @temitan]
  • Supported Enumerator for #each on Database, Table, TableCursor and IndexCursor.
  • Added WGS84GeoPoint and TokyoGeoPoint.
  • [dumper] supported dumping of WGS84GeoPoint and TokyoGeoPoint.
  • [dumper] worked on non UTF-8 extenal output encoding environment.
  • [dumper] sorted table and column names.
  • [dumper] ignored invalid byte.
  • [grndump] showed the warning for invalid character.
  • [grndump] supported database that is created by old groonga.
  • Added Groonga::Context#ruby_encoding.
  • Added many documents in codes but showed no references.

Fixes

  • Added missing backslash escape for groonga command.

Thanks

  • @temitan

2.0.4: 2012-05-02

Fixes

  • Fixed a bug that weight of match target is ignored.

2.0.3: 2012-05-02

Improvements

  • Supported groonga 2.0.2.
  • Groonga::Table#each supports options that are same as Groonga::Table#open_cursor’s one.
  • [grndump] added --order-by=id option. With this option, dumped records are sorted by ID instead of key. You can restore records without ID change if you don’t delete any records. [#1341]
  • Supported building on Windows with RubyInstaller for Windows with DevKit. [GitHub#6] [Patch by @ongaeshi]
  • Supported similar search by table.select {|record| record.column.similar_search(text)} syntax.

Fixes

  • Fixed a GC related crach bug.

Thanks

  • @ongaeshi

2.0.2: 2012-03-29

Improvements

  • Supported groonga 2.0.1.
  • Added logos .

Fixes

  • Fixed a Groonga::Snipet related crach bug caused by GC.

2.0.0: 2012-03-22

Improvements

  • Supported groonga 2.0.0.
  • [gem][windows] Removed mswin packages.

Fixes

  • [test] Fixed version test failure. [GitHub#4] [Reported by @takkanm]
  • Fixed a Groonga::Expression related crach bug caused by GC.
  • [doc] Fixed broken HTML output. [groonga-dev,00699] [Reported by Hirano]

Thanks

  • @takkanm
  • Hirano

1.3.1: 2012-01-29

Improvements

  • Supported groonga 1.3.0.
  • [schema] Supported Int8, Int16, UInt8 and UInt16.
  • [schema] Supported TokyoGeoPoint and WGS84GeoPoint.
  • [schema][dumper] Supported Boolean and more built-in types. [Reported by @mashiro]
  • [schema] Supported type object as column type. [#1002]
  • Added Groonga::VariableSizeColumn#compressed?. [#1004]
  • Added Groonga::Record#score=.
  • Improve performance for encoded string.
  • Added Groonga::Command::Builder.escape_value.

Thanks

  • @mashiro

1.3.0: 2011-11-29

Improvements

  • [schema] Remove also needless db.tables/ directory if it is empty.
  • [schema] Remove also needless db.tables/table.columns/ directory if it is empty.
  • Added query log parser.
  • Added groonga-query-log-extract command.
  • Added grntest log analyzer.
  • Added JSON gem dependency.
  • Supported groonga 1.2.8.
  • Dropped groonga 1.2.7 or former support.
  • Added Groonga::Table#defrag.
  • Added Groonga::Table#rename.
  • Added Groonga::Column#rename.
  • Added Groonga::DoubleArrayTrie.
  • [schema] Supported table rename.
  • [schema] Supported column rename.
  • [schema] Supported double array trie.

Changes

  • [schema] Don’t use named path by default for location aware DB.

Fixes

  • Fixed a crash problem on GC.

1.2.9: 2011-09-16

Fixes

  • deleted unneed object files.

1.2.8: 2011-09-16

Improvements

  • supported “!=” expression for column in block of Groonga::Table#select.
  • accepted Hash like object as options.
  • supported vector in dump in Ruby syntax.
  • supported GRN_CTX_PER_DB environment variables. (NOTE: You should pay attention to use this variables.)

1.2.7: 2011-08-29

Improvements

  • Added Groonga::Snippet#close that frees resource.

Fixes

  • Fixed build error on Ruby 1.8.7.

1.2.6: 2011-08-29

Improvements

  • Supported groonga 1.2.5.
  • Added Groonga::Record#added? that returns true when the record is just added.
  • Added Groonga::VariableSizeColumn#defrag? that defrags the column.
  • Added Groonga::Database#defrag that defrags the all variable size columns.
  • Supported column name specification by symbol.

Fixes

  • Fixed install *.rb failure by gem install.
  • Fixed some memory leaks.
  • Fixed crash bug on exit.

1.2.5: 2011-08-05

Improvements

  • Re-supported tar.gz distribution.
  • Added Groonga::Context#close.
  • Added Groonga::Context#closed?.
  • Deprecated Groonga::ObjectClosed. Use Groonga::Closed instead.
  • grndump: Added —exclude-table option that specifies not dumped tables.
  • dump: Removed path equality check.

Fixes

  • dump: Fixed wrong index table type.
  • Re-supported auto groonga install.

1.2.4: 2011-06-29

Improvements

  • Supported groonga 1.2.3.

Fixes

  • Re-supported auto groonga install.
  • Added missing pkg-config gem dependency.

1.2.3: 2011-06-27

Fixes

  • remove object files in gem packages.
  • fix charactor corruption in reference.

1.2.2: 2011-06-27

Improvements

  • created “Developers” page in English.
  • added description for tasks of “html:publish” and “publish”.

Changes

  • Groonga::Record#attributes return same attributes object for duplicate records.
  • added document for Groonga::Record#attributes.
  • changed tool name in document page for creating document.
  • moved NEWS*.rdoc and tutorial.texttile to doc/text/.

Fixes

  • fixed the tutorial path in index page.
  • fixed the path of tutorial in index page in English.
  • follow the groonga downlowd URL change. [mallowlabs]

Thanks

  • mallowlabs

1.2.1: 2011-06-07

Improvements

  • added document of Groonga::Table#pagination.
  • added grndump in package.
  • corresponded recursive reference of Records by Groonga::Record#attributes. (experimental) [mooz]
  • Groonga::Record#attributes supported data including _score.
  • corresponded Windows for 64-bit. (but there’s not 64-bit ruby, so rroonga for 64-bit windows cannot run.)
  • added Groonga::Posting.
  • added :delimit, :token_delimiter for alias of TokenDelimit.
  • Groonga::DatabaseDumper#dump corresponded lexicon table.
  • Groonga::DatabaseDumper#dump corresponded data including plugin.
  • added Groonga::IndexColumn#open_cursor. [yoshihara]
  • added Groonga::IndexCursor. [yoshihara]
  • added Groonga::Object#builtin?. [yoshihara]

Changes

  • check existence of column before removing it.
  • removed grn expression document.

Thanks

  • mooz
  • yoshihara

1.2.0: 2011-04-01

Improvements

  • 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

Improvements

  • Supported groonga 1.1.0.
  • Added Groonga::Plugin.register.

1.0.9: 2011-01-29

Improvements

  • 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?.

Changes

  • Renamed Groonga::Operatoion to Groonga::Operator. (Groonga::Operation is deprecated but still usable.)

Fixes

  • Fixed a crash bug when not default Groonga::Context is used in Groonga::Table#select.
  • Fixed a crash bug when an exception is occurred.

Thanks

  • ongaeshi

1.0.8: 2010-12-25

Improvements

  • Improved Groonga::Schema’s n-gram tokenizer detect process.

Fixes

  • Fixed GC problem caused by match_target in select.

1.0.7: 2010-12-19

Fixes

  • Supported pkg-config installed by RubyGems on Ruby 1.8. [Reported by @kamipo]
  • Fixed a memory leak in Groonga::Table#columns.

Thanks

  • @kamipo

1.0.5: 2010-11-29

Improvements

  • Added snail_case type name aliases for built-in groonga types to Groonga::Schema.

Fixes

  • Fixed a crash bug on GC. [Ryo Onodera]

1.0.4: 2010-11-29

Improvements

  • Supported groonga 1.0.4.
  • Added Groonga::UnsupportedCommandVersion.
  • Added Groonga::Record#support_sub_records?.
  • Added Groonga::Record#eql?とGroonga::Record#hash. (treat two the same table and the same record ID object as the same Hash key.)
  • Supported pkg-config gem.
  • Supported generic #record_id object handle for custom record object in Groonga::Table#select.
  • Added Groonga::Record#record_id.
  • Added Groonga::Table#support_key?.
  • Added Groonga::Record#support_key?.
  • Added Groonga::Record#support_key?.
  • Added Groonga::Column#reference_key?.
  • Added Groonga::Column#index_column?.
  • Added Groonga::Schema#dump.
  • Supported multi columns index creation in Groonga::Schema.
  • Supported meaningful path in Groonga::Schema.
  • Made reference table omissible when index column definition in Groonga::Schema.
  • Added Groonga::Schema.remove_column.
  • Added convenience timestamps methods to define “created_at” and “updated_at” columns in Groonga::Schema.
  • Added Groonga::Context#support_zlib?.
  • Added Groonga::Context#support_lzo?.
  • Added Groonga::Database#touch.
  • Added Groonga::Table#exist?.
  • Added Groonga::Record#valid?.
  • Added Groonga::Column#vector?.
  • Added Groonga::Column#scalar?.
  • Added Groonga::Record#vector_column?.
  • Added Groonga::Record#scalar_column?.
  • Accepted any object that has record_raw_id method for record ID required location. Groonga::Record isn’t required.
  • Added Groonga::Record#record_raw_id.
  • Accepted any object that as to_ary method for reference vector column value.

Changes

  • Used :key as the default value of :order_by of Groonga::PatriciaTrie#open_cursor.
  • Removed a deprecated Groonga::TableKeySupport#find.
  • Used ShortText as the default key type of Groonga::Hash#create and Groonga::PatriciaTrie#create.
  • Renamed Groonga::Schema#load to Groonga::Schema#restore.
  • Supported pkg-confg 1.0.7.
  • Added Groonga::Column#index? and deprecated Groonga::Column#index_column?.
  • Added Groonga::Column#reference? and deprecated Groonga::Column#reference_column?.

Fixes

  • Fixed index for key isn’t be able to define.
  • Fixed a crash problem on GC.

1.0.1: 2010-09-12

Fixes

  • Fixed wrong flag used on creating a table. [Reported by ono matope]

Thanks

  • ono matope

1.0.0: 2010-08-29

  • Supported groonga 1.0.0.
  • Added Groonga::CASError.
  • Added :order_by option to Groonga::Table#open_cursor.
  • Added Groonga::PatriciaTrie#open_prefix_cursor that creates a cursor to retrieve each records by prefix search.
  • Added Groonga::PatriciaTrie#open_rk_cursor that creats a cursor to retrieve katakana keys from roman letters and/or hiragana.
  • Added Groonga::PatriciaTrie#open_near_cursor that creates a cursor to retrieve records order by distance from key.
  • Supported _key as index source.

0.9.5: 2010-07-20

  • Supported groonga 0.7.4.
  • Imporoved Groonga::Table#select:
  • Supported weight match:
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

  • Fixed release miss.

0.9.3: 2010-04-22

  • Fixed release miss.

0.9.2: 2010-04-22

  • Supported groonga 0.1.9.
  • Many.

0.9.1: 2010-02-09

  • Supported groonga 0.1.6

0.9.0: 2010-02-09

  • Supported groonga 0.1.5
  • Added 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
  • Changed API
  • Groonga::Table#select, Groonga::Column#select
  • They also accept Groonga::Expression
  • Added :syntax option that specifies grn expression syntax
  • Groonga::Table#open_cursor
  • Added :offset option that specifies offset.
  • Added :limit option that specifies max number of records.
  • Changed Groonga::Expression.parse options:
  • (nil (default) → :column) → (nil (default) → :query)
  • :column → removed
  • :table → :query
  • :table_query → :query
  • :expression → :script
  • :language → :script
  • Groonga::Table#define_column, Groonga::Table#define_index_column
  • Defined column becomes persistent table by default
  • Groonga::Table#[] → Groonga::Table#value
  • Groonga::Table#[]= → Groonga::Table#set_value
  • Groonga::Table#find → Groonga::Table#[]
  • Groonga::Table#find → obsolete
  • Groonga::Table#[]= → removed
  • Groonga::TableKeySupport#[]= is alias of Groonga::TableKeySupport#add
  • Changed exception class to Groonga::NoSuchColumn from Groonga::InvalidArgument when Groonga::Record accesses nonexistent a column.
  • Bug fixes
  • Fixed a bug that context isn’t passed to schema [dara]
  • Fixed a bug that Groonga::PatriciaTrie#tag_keys doesn’t return that last text. [Ryo Onodera]
  • Added —with-debug option to extconf.rb for debug build.
  • Fixed a bug that Ruby 1.9.1 may fail extconf.rb.

Thanks

  • dara
  • Ryo Onodera
  • Tasuku SUENAGA

0.0.7: 2009-10-02

  • Supported groonga 0.1.4
  • Added API
  • Groonga::PatriciaTrie#scan
  • Groonga::PatriciaTrie#tag_keys
  • Groonga::Expression#snippet
  • Groonga::Object#append
  • Groonga::Object#prepend

0.0.6: 2009-07-31

  • Supported groonga 0.1.1.
  • Fixed documents [id:mat_aki]
  • Supported groonga expression for searching.
  • Added API
  • Groonga::Table#union!
  • Groonga::Table#intersect!
  • Groonga::Table#differene!
  • Groonga::Table#merge!
  • Provided tar.gz [id:m_seki]
  • Fixed memory leaks

0.0.3: 2009-07-18

  • Added Groonga::TableKeySupport#has_key? [#26145] [Tasuku SUENAGA]
  • Groonga::Record#[] raises an exception for nonexistent column name. [#26146] [Tasuku SUENAGA]
  • Supported 32bit environment [niku]
  • Added a test for N-gram index search [dara]
  • Added APIs
  • Groonga::Record#incemrent!
  • Groonga::Record#decemrent!
  • Groonga::Record#lock
  • Groonga::Table#lock
  • Groonga::Schema: A DSL for schema definition
  • Groonga::Expression

0.0.2: 2009-06-04

  • Supported groonga 0.0.8 [mori]
  • Improved preformance: cache key, value, domain and range
  • Improved API
  • Added documents
  • Supported Ruby 1.9
  • Bug fixes:
  • Fixed install process [Tasuku SUENAGA]
  • Fixed memory leaks

0.0.1: 2009-04-30

  • Initial release!