rroonga 2.0.8 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. data/README.textile +2 -2
  2. data/bin/groonga-index-dump +47 -0
  3. data/doc/text/news.textile +733 -0
  4. data/doc/text/tutorial.textile +535 -0
  5. data/example/bookmark.rb +1 -1
  6. data/ext/groonga/rb-grn-database.c +21 -24
  7. data/ext/groonga/rb-grn-double-array-trie.c +50 -58
  8. data/ext/groonga/rb-grn-exception.c +18 -1
  9. data/ext/groonga/rb-grn-hash.c +18 -3
  10. data/ext/groonga/rb-grn-index-column.c +50 -2
  11. data/ext/groonga/rb-grn-normalizer.c +83 -0
  12. data/ext/groonga/rb-grn-object.c +18 -14
  13. data/ext/groonga/rb-grn-patricia-trie.c +17 -2
  14. data/ext/groonga/rb-grn-query-logger.c +263 -0
  15. data/ext/groonga/rb-grn-snippet.c +6 -0
  16. data/ext/groonga/rb-grn-table-key-support.c +204 -13
  17. data/ext/groonga/rb-grn-table.c +124 -46
  18. data/ext/groonga/rb-grn.h +14 -3
  19. data/ext/groonga/rb-groonga.c +2 -0
  20. data/lib/groonga/database.rb +7 -0
  21. data/lib/groonga/dumper.rb +21 -2
  22. data/lib/groonga/index-column.rb +170 -0
  23. data/lib/groonga/query-logger.rb +129 -0
  24. data/lib/groonga/record.rb +32 -8
  25. data/lib/groonga/schema.rb +231 -288
  26. data/lib/groonga.rb +2 -1
  27. data/rroonga-build.rb +2 -2
  28. data/rroonga.gemspec +11 -7
  29. data/test/groonga-test-utils.rb +18 -6
  30. data/test/test-hash.rb +49 -20
  31. data/test/test-index-cursor.rb +4 -4
  32. data/{Gemfile → test/test-normalizer.rb} +9 -5
  33. data/test/test-pagination.rb +1 -1
  34. data/test/test-patricia-trie.rb +8 -0
  35. data/test/test-schema.rb +16 -13
  36. data/test/test-snippet.rb +5 -0
  37. data/test/test-table.rb +24 -12
  38. data/test/test-view.rb +0 -1
  39. metadata +154 -136
  40. data/AUTHORS +0 -5
  41. data/Rakefile +0 -203
  42. data/bin/groonga-query-log-extract +0 -117
@@ -0,0 +1,733 @@
1
+ h1. NEWS
2
+
3
+ h2(#2-1-0). 2.1.0: 2012-12-29
4
+
5
+ h3. Improvements
6
+
7
+ * Required groonga 2.1.0.
8
+ * Supported mass record deletion with block.
9
+ [groonga-dev,01138][Suggested by ongaeshi]
10
+ * Added Groonga::Normalizer.normalize (experimental). It normalize string.
11
+ e.g.)
12
+ Groonga::Normalizer.normalize("AbC") # => "abc"
13
+ Now, it removes any spaces by default, but it will be customized soon.
14
+ * Supported :normalizer option in DoubleArrayTrie, PatriciaTrie, Hash,
15
+ Schema when creating tables.
16
+ * [table] Added using normalizer accessor.
17
+ * [table] Used normalizer for checking key normalization is enabled or not.
18
+ * Added groonga-index-dump tool (experimental).
19
+ This tool dumps infomations for each index from DB.
20
+ Dumped informations are contained at "INDEX_NAME.dump" files in
21
+ "TARGET_TABLE_NAME.index_INDEX_COLUMN_NAME".
22
+ e.g.)
23
+
24
+ <pre>
25
+ $ cat index-dump.sdf
26
+ table_create --name Video --flags TABLE_HASH_KEY --key_type UInt32
27
+ table_create --name Tag --flags TABLE_HASH_KEY --key_type ShortText
28
+ column_create --table Video --name title --flags COLUMN_SCALAR --type ShortText
29
+ column_create --table Video --name tags --flags COLUMN_VECTOR --type Tag
30
+ column_create --table Tag --name index_tags --flags COLUMN_INDEX --type Video --source tags
31
+ load --table Video
32
+ [
33
+ {"_key":1,"title":"groonga Demo","tags":["IT","Server","groonga"]},
34
+ {"_key":2,"title":"Ultra Baseball","tags":["Sports","Baseball"]},
35
+ ]
36
+ $ groonga --file index-dump.sdf -n index-dump.db
37
+ $ groonga-index-dump --output-directory=path/to/index/ index-dump.db
38
+ $ cd path/to/index/
39
+ $ ls Tag.index_tags
40
+ Baseball.dump IT.dump Server.dump Sports.dump groonga.dump
41
+ $ cat path/to/index/Tag.index_tags/groonga.dump
42
+ index: Tag.index_tags term: <groonga> domain: Tag range: Video have_section: false have_weight: false have_position: false
43
+ weight position term_frequency record
44
+ 0 2 1 Video[ 1 ].tags
45
+ </pre>
46
+
47
+ * Added flag options to Groonga::IndexColumn#open_cursor.
48
+ The flag options are :with_section, :with_weight, :with_position.
49
+ They are enabled by default if each option is specified in creating
50
+ a index column.
51
+ * [Snippet] Showed the error message when specified context wasn't
52
+ associated with a database by Groonga::Database#open or #create.
53
+ * [inspect] Supported to display index column related flags for index
54
+ column only.
55
+ "index column related flags" are WITH_SECTION, WITH_WEIGHT and
56
+ WITH_POSITION.
57
+ * [inspect] Added default tokenizer and normalizer infomation.
58
+ * Supported Groonga::QueryLogger. This class is used to log query log.
59
+ Please see its reference for detail.
60
+
61
+ h3. Changes
62
+
63
+ * Move groonga-query-log-extract to groonga-query-log.
64
+ Please install groogna-query-log gem to use this tool.
65
+ how to install:
66
+ gem install groonga-query-log
67
+ * Returned Groonga::Array instead of Array by Table#sort.
68
+ [GitHub: #8][Suggested by Genki Takiuchi]
69
+ CAUTION: This is backward incompatible change. You need to use
70
+ record.value to get the original record.
71
+ The following code shows how to use old style:
72
+ result_since_2_1_0 = table.sort(["sort_key"])
73
+ result_before_2_1_0 = result_since_2_1_0.collect do |record|
74
+ record.value
75
+ end
76
+
77
+ h3. Thanks
78
+
79
+ * ongaeshi
80
+ * Genki Takiuchi
81
+
82
+ h2(#2-0-8). 2.0.8: 2012-12-02
83
+
84
+ h3. Improvements
85
+
86
+ * Required groonga 2.0.9.
87
+
88
+ h2(#2-0-7). 2.0.7: 2012-11-29
89
+
90
+ h3. Improvements
91
+
92
+ * Added Groonga::Posting#record. This method returns the record for
93
+ the record ID in table.
94
+ * Added Groonga::Posting#term. This method returns the record for the
95
+ term ID in table.
96
+ * Supported GRN_OBJ_KEY_VAR_SIZE for Groonga::Type#inspect.
97
+ GRN_OBJ_KEY_CAR_SIZE specifies its column is variable size.
98
+ * [Type] Added reader methods to Groonga::Type (#size and #flags).
99
+ * [Type] Added predicate methods to Groonga::Type.
100
+ Added methods are #fixed_size?, #variable_size?, #unsigned_integer?,
101
+ #integer?, #float? and #geo_point?.
102
+
103
+ h3. Changes
104
+
105
+ * Removed query log related codes.
106
+ This feature moved to groonga-query-log gem and it is relased soon.
107
+
108
+ h2(#2-0-6). 2.0.6: 2012-10-25
109
+
110
+ h3. Improvements
111
+
112
+ * [dump] Put index columns at the bottom (after loads).
113
+ It is for using offline index construction.
114
+ * Added term_extract in Table#select by @table.select {|record|
115
+ record.key.term_extract(text)}@ syntax.
116
+ * Supported :allow_leading_not as a option of #select.
117
+ You should use this option carefully. It takes a long time to search
118
+ all records which doesn't include a word. In addition, when the
119
+ number of records is large, to search them with this option is
120
+ slowly.
121
+
122
+ h3. Changes
123
+
124
+ * Changed option name for debug build in extconf.rb from --with-debug
125
+ to --enable-debug-log.
126
+
127
+ h3. Fixes
128
+
129
+ * Fixed display collapse in the references.
130
+
131
+ h2(#2-0-5). 2.0.5: 2012-09-28
132
+
133
+ h3. Improvements
134
+
135
+ * Supported groonga 2.0.7.
136
+ * Removed the workaround to install rroonga with old groonga.
137
+ * Added more error checks.
138
+ * Added Database#tables. [Suggested by @temitan]
139
+ * Supported Enumerator for #each on Database, Table, TableCursor and
140
+ IndexCursor.
141
+ * Added WGS84GeoPoint and TokyoGeoPoint.
142
+ * [dumper] supported dumping of WGS84GeoPoint and TokyoGeoPoint.
143
+ * [dumper] worked on non UTF-8 extenal output encoding environment.
144
+ * [dumper] sorted table and column names.
145
+ * [dumper] ignored invalid byte.
146
+ * [grndump] showed the warning for invalid character.
147
+ * [grndump] supported database that is created by old groonga.
148
+ * Added Groonga::Context#ruby_encoding.
149
+ * Added many documents in codes but showed no references.
150
+
151
+ h3. Fixes
152
+
153
+ * Added missing backslash escape for groonga command.
154
+
155
+ h3. Thanks
156
+
157
+ * @temitan
158
+
159
+ h2(#2-0-4). 2.0.4: 2012-05-02
160
+
161
+ h3. Fixes
162
+
163
+ * Fixed a bug that weight of match target is ignored.
164
+
165
+ h2(#2-0-3). 2.0.3: 2012-05-02
166
+
167
+ h3. Improvements
168
+
169
+ * Supported groonga 2.0.2.
170
+ * Groonga::Table#each supports options that are same as
171
+ Groonga::Table#open_cursor's one.
172
+ * [grndump] added @--order-by=id@ option. With this option, dumped
173
+ records are sorted by ID instead of key. You can restore records
174
+ without ID change if you don't delete any records. [#1341]
175
+ * Supported building on Windows with RubyInstaller for Windows with DevKit.
176
+ [GitHub#6] [Patch by @ongaeshi]
177
+ * Supported similar search by @table.select {|record|
178
+ record.column.similar_search(text)}@ syntax.
179
+
180
+ h3. Fixes
181
+
182
+ * Fixed a GC related crach bug.
183
+
184
+ h3. Thanks
185
+
186
+ * @ongaeshi
187
+
188
+ h2(#2-0-2). 2.0.2: 2012-03-29
189
+
190
+ h3. Improvements
191
+
192
+ * Supported groonga 2.0.1.
193
+ * Added "logos":http://groonga.rubyforge.org/#logo .
194
+
195
+ h3. Fixes
196
+
197
+ * Fixed a Groonga::Snipet related crach bug caused by GC.
198
+
199
+ h2(#2-0-0). 2.0.0: 2012-03-22
200
+
201
+ h3. Improvements
202
+
203
+ * Supported groonga 2.0.0.
204
+ * [gem][windows] Removed mswin packages.
205
+
206
+ h3. Fixes
207
+
208
+ * [test] Fixed version test failure. [GitHub#4] [Reported by @takkanm]
209
+ * Fixed a Groonga::Expression related crach bug caused by GC.
210
+ * [doc] Fixed broken HTML output. [groonga-dev,00699]
211
+ [Reported by Hirano]
212
+
213
+ h3. Thanks
214
+
215
+ * @takkanm
216
+ * Hirano
217
+
218
+ h2(#1-3-1). 1.3.1: 2012-01-29
219
+
220
+ h3. Improvements
221
+
222
+ * Supported groonga 1.3.0.
223
+ * [schema] Supported Int8, Int16, UInt8 and UInt16.
224
+ * [schema] Supported TokyoGeoPoint and WGS84GeoPoint.
225
+ * [schema][dumper] Supported Boolean and more built-in types.
226
+ [Reported by @mashiro]
227
+ * [schema] Supported type object as column type. [#1002]
228
+ * Added Groonga::VariableSizeColumn#compressed?. [#1004]
229
+ * Added Groonga::Record#score=.
230
+ * Improve performance for encoded string.
231
+ * Added Groonga::Command::Builder.escape_value.
232
+
233
+ h3. Thanks
234
+
235
+ * @mashiro
236
+
237
+ h2(#1-3-0). 1.3.0: 2011-11-29
238
+
239
+ h3. Improvements
240
+
241
+ * [schema] Remove also needless db.tables/ directory if it is empty.
242
+ * [schema] Remove also needless db.tables/table.columns/ directory if it is empty.
243
+ * Added query log parser.
244
+ * Added groonga-query-log-extract command.
245
+ * Added grntest log analyzer.
246
+ * Added JSON gem dependency.
247
+ * Supported groonga 1.2.8.
248
+ * Dropped groonga 1.2.7 or former support.
249
+ * Added Groonga::Table#defrag.
250
+ * Added Groonga::Table#rename.
251
+ * Added Groonga::Column#rename.
252
+ * Added Groonga::DoubleArrayTrie.
253
+ * [schema] Supported table rename.
254
+ * [schema] Supported column rename.
255
+ * [schema] Supported double array trie.
256
+
257
+ h3. Changes
258
+
259
+ * [schema] Don't use named path by default for location aware DB.
260
+
261
+ h3. Fixes
262
+
263
+ * Fixed a crash problem on GC.
264
+
265
+ h2. 1.2.9: 2011-09-16
266
+
267
+ h3. Fixes
268
+
269
+ * deleted unneed object files.
270
+
271
+ h2. 1.2.8: 2011-09-16
272
+
273
+ h3. Improvements
274
+
275
+ * supported "!=" expression for column in block of Groonga::Table#select.
276
+ * accepted Hash like object as options.
277
+ * supported vector in dump in Ruby syntax.
278
+ * supported GRN_CTX_PER_DB environment variables.
279
+ (NOTE: You should pay attention to use this variables.)
280
+
281
+ h2. 1.2.7: 2011-08-29
282
+
283
+ h3. Improvements
284
+
285
+ * Added Groonga::Snippet#close that frees resource.
286
+
287
+ h3. Fixes
288
+
289
+ * Fixed build error on Ruby 1.8.7.
290
+
291
+ h2. 1.2.6: 2011-08-29
292
+
293
+ h3. Improvements
294
+
295
+ * Supported groonga 1.2.5.
296
+ * Added Groonga::Record#added? that returns true when the record is just added.
297
+ * Added Groonga::VariableSizeColumn#defrag? that defrags the column.
298
+ * Added Groonga::Database#defrag that defrags the all variable size columns.
299
+ * Supported column name specification by symbol.
300
+
301
+ h3. Fixes
302
+
303
+ * Fixed install *.rb failure by gem install.
304
+ * Fixed some memory leaks.
305
+ * Fixed crash bug on exit.
306
+
307
+ h2. 1.2.5: 2011-08-05
308
+
309
+ h3. Improvements
310
+
311
+ * Re-supported tar.gz distribution.
312
+ * Added Groonga::Context#close.
313
+ * Added Groonga::Context#closed?.
314
+ * Deprecated Groonga::ObjectClosed. Use Groonga::Closed instead.
315
+ * grndump: Added --exclude-table option that specifies not dumped tables.
316
+ * dump: Removed path equality check.
317
+
318
+ h3. Fixes
319
+
320
+ * dump: Fixed wrong index table type.
321
+ * Re-supported auto groonga install.
322
+
323
+ h2. 1.2.4: 2011-06-29
324
+
325
+ h3. Improvements
326
+
327
+ * Supported groonga 1.2.3.
328
+
329
+ h3. Fixes
330
+
331
+ * Re-supported auto groonga install.
332
+ * Added missing pkg-config gem dependency.
333
+
334
+ h2. 1.2.3: 2011-06-27
335
+
336
+ h3. Fixes
337
+
338
+ * remove object files in gem packages.
339
+ * fix charactor corruption in reference.
340
+
341
+ h2. 1.2.2: 2011-06-27
342
+
343
+ h3. Improvements
344
+
345
+ * created "Developers" page in English.
346
+ * added description for tasks of "html:publish" and "publish".
347
+
348
+ h3. Changes
349
+
350
+ * Groonga::Record#attributes return same attributes object for duplicate records.
351
+ * added document for Groonga::Record#attributes.
352
+ * changed tool name in document page for creating document.
353
+ * moved NEWS*.rdoc and tutorial.texttile to doc/text/.
354
+
355
+ h3. Fixes
356
+
357
+ * fixed the tutorial path in index page.
358
+ * fixed the path of tutorial in index page in English.
359
+ * follow the groonga downlowd URL change. [mallowlabs]
360
+
361
+ h3. Thanks
362
+
363
+ * mallowlabs
364
+
365
+ h2. 1.2.1: 2011-06-07
366
+
367
+ h3. Improvements
368
+
369
+ * added document of Groonga::Table#pagination.
370
+ * added grndump in package.
371
+ * corresponded recursive reference of Records by Groonga::Record#attributes.
372
+ (experimental) [mooz]
373
+ * Groonga::Record#attributes supported data including _score.
374
+ * corresponded Windows for 64-bit.
375
+ (but there's not 64-bit ruby, so rroonga for 64-bit windows cannot run.)
376
+ * added Groonga::Posting.
377
+ * added :delimit, :token_delimiter for alias of TokenDelimit.
378
+ * Groonga::DatabaseDumper#dump corresponded lexicon table.
379
+ * Groonga::DatabaseDumper#dump corresponded data including plugin.
380
+ * added Groonga::IndexColumn#open_cursor. [yoshihara]
381
+ * added Groonga::IndexCursor. [yoshihara]
382
+ * added Groonga::Object#builtin?. [yoshihara]
383
+
384
+ h3. Changes
385
+
386
+ * check existence of column before removing it.
387
+ * removed grn expression document.
388
+
389
+ h3. Thanks
390
+
391
+ * mooz
392
+ * yoshihara
393
+
394
+ h2. 1.2.0: 2011-04-01
395
+
396
+ h3. Improvements
397
+
398
+ * Supported groonga 1.2.0.
399
+ * Added Groonga::Accessor#local_name.
400
+ * Added Groonga::IndexColumn#with_section?.
401
+ * Added Groonga::IndexColumn#with_weight?.
402
+ * Added Groonga::IndexColumn#with_position?.
403
+ * Groonga::Schema.dump supported groonga command format dump.
404
+ * Added grndump command.
405
+ * Groonga::Database#each supports order customize.
406
+ * Added Groonga::Context#match_escalation_threshold.
407
+ * Added Groonga::Context#match_escalation_threshold=.
408
+ * Improved error message.
409
+ * Supported Rubyish name like :short_text instead of the
410
+ official type name like "ShortText" in Groonga::Schema.
411
+
412
+ h2. 1.1.0: 2011-02-09
413
+
414
+ h3. Improvements
415
+
416
+ * Supported groonga 1.1.0.
417
+ * Added Groonga::Plugin.register.
418
+
419
+ h2. 1.0.9: 2011-01-29
420
+
421
+ h3. Improvements
422
+
423
+ * Supported gem creation on Windows. [Patch by ongaeshi]
424
+ * Supported generated directory that is created by Groonga::Schema removal
425
+ when table or column is removed.
426
+ * Added Groonga::Context#create_database.
427
+ * Added Groonga::Context#open_database.
428
+ * Added Groonga::Column#indexes.
429
+ * Supported a notation for specifying index column as match target in
430
+ Groonga::Table#select:
431
+ table.select do |record|
432
+ record.match("query") do |match_record|
433
+ (match_record.index("Terms.title") * 1000) |
434
+ (match_record.index("Terms.description") * 100)
435
+ match_record.content
436
+ end
437
+ end
438
+ * Supported prefix search in Groonga::Table#select:
439
+ table.select do |record|
440
+ record.name.prefix_search("groo")
441
+ end
442
+ * Supported suffix search in Groonga::Table#select:
443
+ table.select do |record|
444
+ record.name.suffix_search("nga")
445
+ end
446
+ * Supported :default_tokenizer schema dump.
447
+ * Supported :key_normalize schema dump.
448
+ * Supported pseudo columns by Groonga::Table#have_column?.
449
+ * Supported pseudo columns by Groonga::Record#have_column?.
450
+
451
+ h3. Changes
452
+
453
+ * Renamed Groonga::Operatoion to Groonga::Operator.
454
+ (Groonga::Operation is deprecated but still usable.)
455
+
456
+ h3. Fixes
457
+
458
+ * Fixed a crash bug when not default Groonga::Context is used in
459
+ Groonga::Table#select.
460
+ * Fixed a crash bug when an exception is occurred.
461
+
462
+ h3. Thanks
463
+
464
+ * ongaeshi
465
+
466
+ h2. 1.0.8: 2010-12-25
467
+
468
+ h3. Improvements
469
+
470
+ * Improved Groonga::Schema's n-gram tokenizer detect process.
471
+
472
+ h3. Fixes
473
+
474
+ * Fixed GC problem caused by match_target in select.
475
+
476
+ h2. 1.0.7: 2010-12-19
477
+
478
+ h3. Fixes
479
+
480
+ * Supported pkg-config installed by RubyGems on Ruby 1.8. [Reported by @kamipo]
481
+ * Fixed a memory leak in Groonga::Table#columns.
482
+
483
+ h3. Thanks
484
+
485
+ * @kamipo
486
+
487
+ h2. 1.0.5: 2010-11-29
488
+
489
+ h3. Improvements
490
+
491
+ * Added snail_case type name aliases for built-in groonga types
492
+ to Groonga::Schema.
493
+
494
+ h3. Fixes
495
+
496
+ * Fixed a crash bug on GC. [Ryo Onodera]
497
+
498
+ h2. 1.0.4: 2010-11-29
499
+
500
+ h3. Improvements
501
+
502
+ * Supported groonga 1.0.4.
503
+ * Added Groonga::UnsupportedCommandVersion.
504
+ * Added Groonga::Record#support_sub_records?.
505
+ * Added Groonga::Record#eql?とGroonga::Record#hash.
506
+ (treat two the same table and the same record ID object as the same Hash key.)
507
+ * Supported pkg-config gem.
508
+ * Supported generic #record_id object handle for custom record object
509
+ in Groonga::Table#select.
510
+ * Added Groonga::Record#record_id.
511
+ * Added Groonga::Table#support_key?.
512
+ * Added Groonga::Record#support_key?.
513
+ * Added Groonga::Record#support_key?.
514
+ * Added Groonga::Column#reference_key?.
515
+ * Added Groonga::Column#index_column?.
516
+ * Added Groonga::Schema#dump.
517
+ * Supported multi columns index creation in Groonga::Schema.
518
+ * Supported meaningful path in Groonga::Schema.
519
+ * Made reference table omissible when index column definition
520
+ in Groonga::Schema.
521
+ * Added Groonga::Schema.remove_column.
522
+ * Added convenience timestamps methods to define "created_at" and
523
+ "updated_at" columns in Groonga::Schema.
524
+ * Added Groonga::Context#support_zlib?.
525
+ * Added Groonga::Context#support_lzo?.
526
+ * Added Groonga::Database#touch.
527
+ * Added Groonga::Table#exist?.
528
+ * Added Groonga::Record#valid?.
529
+ * Added Groonga::Column#vector?.
530
+ * Added Groonga::Column#scalar?.
531
+ * Added Groonga::Record#vector_column?.
532
+ * Added Groonga::Record#scalar_column?.
533
+ * Accepted any object that has record_raw_id method for record ID required
534
+ location. Groonga::Record isn't required.
535
+ * Added Groonga::Record#record_raw_id.
536
+ * Accepted any object that as to_ary method for reference vector column value.
537
+
538
+ h2. Changes
539
+
540
+ * Used :key as the default value of :order_by of
541
+ Groonga::PatriciaTrie#open_cursor.
542
+ * Removed a deprecated Groonga::TableKeySupport#find.
543
+ * Used ShortText as the default key type of
544
+ Groonga::Hash#create and Groonga::PatriciaTrie#create.
545
+ * Renamed Groonga::Schema#load to Groonga::Schema#restore.
546
+ * Supported pkg-confg 1.0.7.
547
+ * Added Groonga::Column#index? and deprecated Groonga::Column#index_column?.
548
+ * Added Groonga::Column#reference? and deprecated
549
+ Groonga::Column#reference_column?.
550
+
551
+ h3. Fixes
552
+
553
+ * Fixed index for key isn't be able to define.
554
+ * Fixed a crash problem on GC.
555
+
556
+ h2. 1.0.1: 2010-09-12
557
+
558
+ h3. Fixes
559
+
560
+ * Fixed wrong flag used on creating a table. [Reported by ono matope]
561
+
562
+ h3. Thanks
563
+
564
+ * ono matope
565
+
566
+ h2. 1.0.0: 2010-08-29
567
+
568
+ * Supported groonga 1.0.0.
569
+ * Added Groonga::CASError.
570
+ * Added :order_by option to Groonga::Table#open_cursor.
571
+ * Added Groonga::PatriciaTrie#open_prefix_cursor that creates a cursor
572
+ to retrieve each records by prefix search.
573
+ * Added Groonga::PatriciaTrie#open_rk_cursor that creats a cursor to
574
+ retrieve katakana keys from roman letters and/or hiragana.
575
+ * Added Groonga::PatriciaTrie#open_near_cursor that creates a cursor to
576
+ retrieve records order by distance from key.
577
+ * Supported _key as index source.
578
+
579
+ h2. 0.9.5: 2010-07-20
580
+
581
+ * Supported groonga 0.7.4.
582
+ * Imporoved Groonga::Table#select:
583
+ * Supported weight match:
584
+
585
+ Here is an example to match source column or title column and
586
+ title column has high score:
587
+ table.select do |record|
588
+ (record.title * 10 | record.source) =~ "query"
589
+ end
590
+ * Supported and representation for and conditions:
591
+
592
+ Here are examples that represents the same condition:
593
+ table.select do |record|
594
+ conditions = []
595
+ conditions << record.title =~ "query"
596
+ conditions << record.updated_at > Time.parse("2010-07-29T21:14:29+09:00")
597
+ conditions
598
+ end
599
+
600
+ table.select do |record|
601
+ (record.title =~ "query") &
602
+ (record.updated_at > Time.parse("2010-07-29T21:14:29+09:00"))
603
+ end
604
+ * Provided groonga runtime version: Groonga::VERSION
605
+ * Added Groonga::Table#support_sub_records?
606
+ * Supported pagination: Groonga::Table#paginate, Groonga::Pagination
607
+
608
+ h2. 0.9.4: 2010-04-22
609
+
610
+ * Fixed release miss.
611
+
612
+ h2. 0.9.3: 2010-04-22
613
+
614
+ * Fixed release miss.
615
+
616
+ h2. 0.9.2: 2010-04-22
617
+
618
+ * Supported groonga 0.1.9.
619
+ * Many.
620
+
621
+ h2. 0.9.1: 2010-02-09
622
+
623
+ * Supported groonga 0.1.6
624
+
625
+ h2. 0.9.0: 2010-02-09
626
+
627
+ * Supported groonga 0.1.5
628
+ * Added API
629
+ * Groonga::Object#context
630
+ * Groonga::Record#n_sub_records
631
+ * Groonga::Context#send
632
+ * Groonga::Context#receive
633
+ * Groonga::PatriciaTrie#prefix_search [Tasuku SUENAGA]
634
+ * Groonga::Object#path [Ryo Onodera]
635
+ * Groonga::Object#lock [Tasuku SUENAGA]
636
+ * Groonga::Object#unlock [Tasuku SUENAGA]
637
+ * Groonga::Object#locked? [Tasuku SUENAGA]
638
+ * Groonga::Object#temporary?
639
+ * Groonga::Object#persistent?
640
+ * Groonga::ObjectClosed
641
+ * Groonga::Context.[]
642
+ * Groonga::Table#column_value
643
+ * Groonga::Table#set_column_value
644
+ * Changed API
645
+ * Groonga::Table#select, Groonga::Column#select
646
+ * They also accept Groonga::Expression
647
+ * Added :syntax option that specifies grn expression syntax
648
+ * Groonga::Table#open_cursor
649
+ * Added :offset option that specifies offset.
650
+ * Added :limit option that specifies max number of records.
651
+ * Changed Groonga::Expression.parse options:
652
+ * (nil (default) -> :column) -> (nil (default) -> :query)
653
+ * :column -> removed
654
+ * :table -> :query
655
+ * :table_query -> :query
656
+ * :expression -> :script
657
+ * :language -> :script
658
+ * Groonga::Table#define_column, Groonga::Table#define_index_column
659
+ * Defined column becomes persistent table by default
660
+ * Groonga::Table#[] -> Groonga::Table#value
661
+ * Groonga::Table#[]= -> Groonga::Table#set_value
662
+ * Groonga::Table#find -> Groonga::Table#[]
663
+ * Groonga::Table#find -> obsolete
664
+ * Groonga::Table#[]= -> removed
665
+ * Groonga::TableKeySupport#[]= is alias of Groonga::TableKeySupport#add
666
+ * Changed exception class to Groonga::NoSuchColumn from
667
+ Groonga::InvalidArgument when Groonga::Record accesses nonexistent
668
+ a column.
669
+ * Bug fixes
670
+ * Fixed a bug that context isn't passed to schema [dara]
671
+ * Fixed a bug that Groonga::PatriciaTrie#tag_keys doesn't return
672
+ that last text. [Ryo Onodera]
673
+ * Added --with-debug option to extconf.rb for debug build.
674
+ * Fixed a bug that Ruby 1.9.1 may fail extconf.rb.
675
+
676
+ h3. Thanks
677
+
678
+ * dara
679
+ * Ryo Onodera
680
+ * Tasuku SUENAGA
681
+
682
+ h2. 0.0.7: 2009-10-02
683
+
684
+ * Supported groonga 0.1.4
685
+ * Added API
686
+ * Groonga::PatriciaTrie#scan
687
+ * Groonga::PatriciaTrie#tag_keys
688
+ * Groonga::Expression#snippet
689
+ * Groonga::Object#append
690
+ * Groonga::Object#prepend
691
+
692
+ h2. 0.0.6: 2009-07-31
693
+
694
+ * Supported groonga 0.1.1.
695
+ * Fixed documents [id:mat_aki]
696
+ * Supported groonga expression for searching.
697
+ * Added API
698
+ * Groonga::Table#union!
699
+ * Groonga::Table#intersect!
700
+ * Groonga::Table#differene!
701
+ * Groonga::Table#merge!
702
+ * Provided tar.gz [id:m_seki]
703
+ * Fixed memory leaks
704
+
705
+ h2. 0.0.3: 2009-07-18
706
+
707
+ * Added Groonga::TableKeySupport#has_key? [#26145] [Tasuku SUENAGA]
708
+ * Groonga::Record#[] raises an exception for nonexistent
709
+ column name. [#26146] [Tasuku SUENAGA]
710
+ * Supported 32bit environment [niku]
711
+ * Added a test for N-gram index search [dara]
712
+ * Added APIs
713
+ * Groonga::Record#incemrent!
714
+ * Groonga::Record#decemrent!
715
+ * Groonga::Record#lock
716
+ * Groonga::Table#lock
717
+ * Groonga::Schema: A DSL for schema definition
718
+ * Groonga::Expression
719
+
720
+ h2. 0.0.2: 2009-06-04
721
+
722
+ * Supported groonga 0.0.8 [mori]
723
+ * Improved preformance: cache key, value, domain and range
724
+ * Improved API
725
+ * Added documents
726
+ * Supported Ruby 1.9
727
+ * Bug fixes:
728
+ * Fixed install process [Tasuku SUENAGA]
729
+ * Fixed memory leaks
730
+
731
+ h2. 0.0.1: 2009-04-30
732
+
733
+ * Initial release!