HAYASHI Kentaro
null+****@clear*****
Mon Mar 30 11:54:29 JST 2015
HAYASHI Kentaro 2015-03-30 11:54:29 +0900 (Mon, 30 Mar 2015) New Revision: a01ec3369f39b5f0bb1ee71a469de3c5021afbb6 https://github.com/groonga/groonga/wiki/ReleaseNote/a01ec3369f39b5f0bb1ee71a469de3c5021afbb6 Message: 英語版を Modified files: ReleaseNote.md Modified: ReleaseNote.md (+288 -0) =================================================================== --- ReleaseNote.md 2015-03-29 13:48:16 +0900 (9938263) +++ ReleaseNote.md 2015-03-30 11:54:29 +0900 (e24fdc9) @@ -1,5 +1,293 @@ # 5.0.1 en +``` +Groonga 5.0.1 has been released! + http://groonga.org/docs/news.html#release-5-0-1 + +Install: http://groonga.org/docs/install.html +Charcteristics: http://groonga.org/docs/characteristic.html + +There are following the topics in this release. + +* [incompatible] The two incompatible changes for DB API users +* [experimental] Supported regular expression +* Supported to customize score function +* [windows] Supported more compact default database size on Windows +* [experimental] Supported to skip posting list + +# Topics + +## [incompatible] The two incompatible changes for DB API users + +In this release, Internal type of _score was changed from 32bit +integer number to floating point number. This is incompatible change +for DB API users. This isn't incompatible change for query API +users. It means that users who just use select command aren't +affected. Use the following code that works with both older and newer +Groonga: + + grn_obj *score; + double score_value; + + if (score->header.domain == GRN_DB_FLOAT) { + score_value = GRN_FLOAT_VALUE(score); + } else { + score_value = (double)GRN_INT32_VALUE_FLOAT_VALUE(score); + } + +Also, custom score function feature introduced API and ABI +incompatibilities in DB API layer. If you're using grn_search_optarg, +please check that your code initializes your grn_search_optarg by 0 +like the following: + + grn_search_optarg options; + memset(&options, 0, sizeof(grn_search_optarg)); + +If your code do the above thing, your code is API compatible and ABI +incompatible. You just need to rebuild your code without modification. + +If your code doesn't the above thing, you need to added the above +thing to your code. + +## [experimental] Supported regular expression + +In this release, Groonga supports regular expression. + +You can use regular expression in select command with query option or +filter option. Note that syntax is a bit different. + +query: + + ${COLUMN}:~${REGULAR_EXPRESSION} + +filter: + + ${COLUMN} @~ ${REGULAR_EXPRESSION} + +The difference between ":~" and "@~" is come from design of Groonga. + +"query" accepts query syntax, on the other hand, "filter" accepts +script syntax. + +"filter" is designed for processing more complex search conditions. + +You can search by regular expression with index. +Create indexes which meets following the conditions: + + * Lexicon must be TABLE_PAT_KEY table. + * Lexicon must use TokenRegexp tokenizer. + * Index column must has WITH_POSITION flag. + +Thus, create following the column index. + + table_create RegexpLexicon TABLE_PAT_KEY ShortText \ + --default_tokenizer TokenRegexp \ + --normalizer NormalizerAuto + column_create RegexpLexicon logs_message_index \ + COLUMN_INDEX|WITH_POSITION Logs message + +Then, you can search with regular expression by using index for +message column. + +See following the document about regular expression. + + http://groonga.org/docs/reference/regular_expression.html + +## Supported to customize score function + +In this release, customizing score function feature is supported. + +There are two built-in score functions. + + * scorer_tf_idf + The frequency of "important term" is important for the score + * scorer_tf_at_most + The matched count is important, but it doesn't exceed the limit + +Groonga use the value of TF (Term Frequency) by default. For example, +try to search against multiple columns - title column and message +column. + +Usually, the content of title column represents summary of message +column. It is reasonable to give title column the weight. As a +result, you can search more important records easily. + +Note that there is a case that the score of title column with weight +is less than matched message column. It is not intended search results. + +If you use scorer_tf_at_most score function, you can limit the value of +score to specific value even though too many records are matched. + +See following the scorer document. + + http://groonga.org/docs/reference/scorer.html + +## [windows] Supported more compact default database size on Windows + +In this release, more compact default database size on Windows is +enabled by default. + +In the previous versions, Groonga uses more larger default database size +(128MiB) on Windows. The size of database increases every you create +new column. + +It is not efficient, now Groonga supports to expand database size gradually +as same as other GNU/Linux environment. + +This feature is introduced since Groonga 4.1.1, but not enabled by default because +it is experimental feature at that time. + +Thank you for Groonga users which gives us feedback of above feature! + +## [experimental] Supported to skip posting list + +In this release, Groonga supports to skip posting list when searching +popular term and rare term at the same time. + +It will improve performance. Set GRN_II_CURSOR_SET_MIN_ENABLE +environment variable to 1 to enable the feature. + + GRN_II_CURSOR_SET_MIN_ENABLE=1 + +The feature is disabled by default because it is experimental feature. + +# Changes + +## Improvements + + * [logical_range_filter] Supported filter and sort. + + * Supported range search by multiple column index. + + * Added API Overview document for users who want to use Groonga as + library. + + * [incompatible] Changed internal type of _score to floating point + number from 32bit integer number. This is incompatible change for DB + API users. This isn't incompatible change for query API users. It + means that users who just use select aren't affected. Use the + following code that works with both older and newer Groonga: + + grn_obj *score; + double score_value; + + if (score->header.domain == GRN_DB_FLOAT) { + score_value = GRN_FLOAT_VALUE(score); + } else { + score_value = (double)GRN_INT32_VALUE_FLOAT_VALUE(score); + } + + * [select] Added more strict check for invalid drilldown parameter. + * Added grn_ctx_get_all_tables(). [Suggested by Masatoshi Teruya] + * Supported to customize score function. See Scorer for details. + * [incompatible] Custom score function feature introduced API and + ABI incompatibilities in DB API layer. If you're using + grn_search_optarg, please check that your code initializes your + grn_search_optarg by 0 like the following: + + grn_search_optarg options; + memset(&options, 0, sizeof(grn_search_optarg)); + + * If your code do the above thing, your code is API compatible and + ABI incompatible. You just need to rebuild your code without + modification. + * If your code doesn't the above thing, you need + to added the above thing to your code. + + * Added the following predicates that check grn_obj type to DB API: + * grn_obj_is_table() + * grn_obj_is_proc_proc() + * grn_obj_is_function_proc() + * grn_obj_is_selector_proc() + * grn_obj_is_scorer_proc() + + * [experimental] Supported skipping posting list when searching + popular term and rare term at the same time. It will improve + performance. Set GRN_II_CURSOR_SET_MIN_ENABLE environment variable + to 1 to enable the feature. The feature is disabled by default. + + * [doc] Added in_values document. + * [doc] Added logical_count document. + * [mruby] Implemented custom #inspect method. Is is useful for + debugging. + * Added scorer_tf_at_most scorer. It limits not to exceed specified + score regardless of term frequency. + * [mruby] Supported estimating matched records for selecting index + search or sequential search. + * Added the following functions to estimate size by index: + * grn_expr_estimate_size() + * grn_ii_estimate_size_for_query() + * grn_ii_estimate_size_for_lexicon_cursor() + * Added missing NormalizerAuto availability check. [GitHub#283] + [Reported by Tasuku SUENAGA] + * Dropped Visual Studio 2010 support. + * [experimental][mecab] Supported chunked tokenization. This feature + is a workaround for MeCab's "too long sentense" error. Specify yes + to GRN_MECAB_CHUNKED_TOKENIZE_ENABLED environment variable to + enable it. By this configuration, Groonga splits a long text (8192 + bytes over text by default) into small chunks and passes each + chunk to MeCab. By this process, the above error isn't + occurred. Additionally, you can customize chunk threshold bytes by + GRN_MECAB_CHUNK_SIZE_THRESHOLD environment variable. Note that ,, + ., !, ?, U+3001 IDEOGRAPHIC COMMA, U+3002 IDEOGRAPHIC FULL STOP, + U+FF01 FULLWIDTH EXCLAMATION MARK and U+FF1F FULLWIDTH QUESTION + MARK are treated as chunk delimiter characters. + * Supported --pid-file in server mode of groonga command. + * [groonga-httpd] Supported graceful stop to clean Groonga. It + doesn't terminate the open connections immediately. + * [experimental] Supported regular expression. See Regular + expression to know about how to use regular expression. + * [experimental] Added plugin_unregister command. + * [http][load] Added "," as chunk separator in POST data. It + decreases internal buffer size and improves load time when POST + data don't include any new line. + * [doc] Added Tokenizers document. + * Improved POSIX.2 compatibility by using . as bash's "source" + command replacement. [GitHub#317] [Patch by Jun Kuriyama] + * [windows] Changed to the default IO version 1. It reduces disk + usage on Windows. [groonga-dev,03118] [Tested by ongaeshi] + * [httpd] Updated bundled nginx version to the latest mainline + (1.7.11). + * Changed mime-type for TSV output to text/tab-separated-values from + text/plain. + * [TokenFilterStopWord] Supported Offline index + construction. [GitHub#296] [Patch by Naoya Murakami] + +## Fixes + + * Fixed not to use obsolete --address parameter in the default + groonga.conf. --bind-address is used instead. [Groonga-talk] + [Reported by Dewangga] + * [truncate] Fixed a bug that TABLE_NO_KEY table can't be truncated. + * [mecab] Reduced needless logs for "empty token" and "ignore empty token". + * Fixed a bug that wrong section in index is used. It means that + wrong search result is returned. If you satisfy all of the following + conditions, this bug is occurred: + * Multiple indexes are available. + * The first defined index or the last defined index are multi-column indexes. + * When both of the first defined index and the last defined index are + multi-column indexes, source column orders are different in them. + * Fixed a bug that passing Groonga command line to groonga command + from shell command line style usage always returns 0 as exit + code. For example, groonga DB_PATH nonexistent_command always + returned 0 as exist code. + * Fixed a bug that plugin path may be broken when two or more plugins + registered. [Reported by Naoya Murakami] + * Fixed a bug that Lexicon.index.source_column_name style in + match_columns doesn't work when source column specified by + source_column_name has two or more indexes. + [Reported by Naoya Murakami] + +## Thanks + + * Masatoshi Teruya + * Tasuku SUENAGA + * Dewangga + * Jun Kuriyama + * ongaeshi + * Naoya Murakami + +``` # 5.0.1 ja 今月のアナウンスには次のトピックを入れよう -------------- next part -------------- HTML����������������������������...Download