groonga / groonga

An embeddable fulltext search engine. Groonga is the successor project to Senna.
https://groonga.org/
GNU Lesser General Public License v2.1
800 stars 116 forks source link

Groonga 9.0.4 #997

Closed komainu8 closed 5 years ago

komainu8 commented 5 years ago

We plan to release 9.0.4 around 29th of this month.

guide: http://groonga.org/ja/docs/contribution/development/release.html (Japanese)

the previous release: #971

kenhys commented 5 years ago

TODO: enable RapidJSON for packages.

kenhys commented 5 years ago

rapidjson package is a bit older on stretch. need to check working with it.

kenhys commented 5 years ago

rapidjson package is a bit older on stretch. need to check working with it.

It seems ok to enable it.

kenhys commented 5 years ago

If rapidjson devel is enabled on CentOS 7, it causes unexpected error.

    centos-7-x86_64: cast.cpp: In function 'grn_rc grn::cast_text_to_uvector(grn_ctx*, grn_obj*, grn_obj*, bool)':                    
    centos-7-x86_64: cast.cpp:75:5: warning: 'auto' changes meaning in C++11; please remove it [-Wc++0x-compat]                             
    centos-7-x86_64:      auto n = document.Size();                                                                                   
    centos-7-x86_64:      ^                                                                                                                 
    centos-7-x86_64: cast.cpp:75:10: error: 'n' does not name a type                                                                        
    centos-7-x86_64:      auto n = document.Size();                                                                                        
    centos-7-x86_64:           ^                                                                                                           
    centos-7-x86_64: cast.cpp:77:28: error: 'n' was not declared in this scope                                                             
    centos-7-x86_64:      for (size_t i = 0; i < n; ++i) {                                                                                  
    centos-7-x86_64:                             ^                                                                                          
    centos-7-x86_64: cast.cpp:78:13: warning: 'auto' changes meaning in C++11; please remove it [-Wc++0x-compat]                           
    centos-7-x86_64:        const auto &element = document[i];                                                                             
    centos-7-x86_64:              ^                                                                                                   
    centos-7-x86_64: cast.cpp:78:19: error: ISO C++ forbids declaration of 'element' with no type [-fpermissive]                            
    centos-7-x86_64:        const auto &element = document[i];                                                                             
    centos-7-x86_64:                    ^                                                                                                  
    centos-7-x86_64: cast.cpp:78:39: error: invalid initialization of reference of type 'const int&' from expression of type 'rapidjson::Gen
ericValue<rapidjson::UTF8<> >'                                                                                                              
    centos-7-x86_64:        const auto &element = document[i];                                                                              
    centos-7-x86_64:                                        ^                                                                              
    centos-7-x86_64: cast.cpp:79:20: error: request for member 'Accept' in 'element', which is of non-class type 'const int'               
    centos-7-x86_64:        if (!element.Accept(handler)) {                                                                                
    centos-7-x86_64:                     ^                                                                                                 
    centos-7-x86_64: make[4]: *** [cast.lo] Error 1                                                                                        
    centos-7-x86_64: make[4]: *** Waiting for unfinished jobs....                                                                           
    centos-7-x86_64: expr_executor.c: In function 'expr_exec':                                           
    centos-7-x86_64: expr_executor.c:2424:1: warning: const/copy propagation disabled: 28337 basic blocks and 69612 registers [-Wdisabled-op
timization]                                                                                                                                 
    centos-7-x86_64:  }                                                                                                                     
    centos-7-x86_64:  ^                                                                                                                     
    centos-7-x86_64: expr_executor.c:2424:1: warning: PRE disabled: 28337 basic blocks and 69612 registers [-Wdisabled-optimization]        
    centos-7-x86_64: expr_executor.c:2424:1: warning: const/copy propagation disabled: 28337 basic blocks and 69612 registers [-Wdisabled-op
timization]                                                                                                                                 
    centos-7-x86_64: expr_executor.c:2424:1: warning: const/copy propagation disabled: 24490 basic blocks and 72617 registers [-Wdisabled-op
timization]                                           
kenhys commented 5 years ago

It needs autoconf-archive and -std=gnu++11.

kou commented 5 years ago

https://github.com/groonga/groonga/blob/master/configure.ac#L90 should add required -std=... automatically.

kenhys commented 5 years ago

@kou Even though autoconf-archive package is installed, -std= is not added. SHoud we change AX_CXX_COMPILE_STDCXX_11([ext], [optional]) to AX_CXX_COMPILE_STDCXX_11([ext], [mandatory]) and that is proper fix?

kou commented 5 years ago

If AX_CXX_COMPILE_STDCXX_11 is used, suitable -std= is select. We don't need to use mandatory.

$ grep 'CXX =' Makefile
CXX = g++ -std=gnu++11
ac_ct_CXX = g++
$ g++ --version
g++ (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36)
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
kenhys commented 5 years ago

Thanks, I've noticed that AX_CXX_COMPILE_STDCXX_11 is not correctly used, so the build error has solved now.

komainu8 commented 5 years ago

ML(en)アナウンス

groonga-talk (English)

Hi,

Groonga 9.0.4 has been released! http://groonga.org/en/blog/2019/05/29/groonga-9.0.4.html http://groonga.org/docs/news.html#release-9-0-4

Install: http://groonga.org/docs/install.html Characteristics: http://groonga.org/docs/characteristic.html

The topics in this release:

Added support for array literal with multiple elements.

We can use array literal with multiple elements into filter condition as below.

table_create Values TABLE_NO_KEY

column_create Values numbers COLUMN_VECTOR Int32

load --table Values
[
{"numbers": [2, 1, 3]},
{"numbers": [2, 3, 4]},
{"numbers": [8, 9, -1]}
]

select Values  \
  --filter 'numbers == [2, 3, 4]'  \
  --output_columns 'numbers'
[[0,0.0,0.0],[[[1],[["numbers","Int32"]],[[2,3,4]]]]]

Added support equivalence operation of a vector.

We can use equivalencs operation for a vector as below.

table_create Values TABLE_NO_KEY

column_create Values numbers COLUMN_VECTOR Int32

load --table Values
[
{"numbers": [2, 1, 3]},
{"numbers": [2, 3, 4]},
{"numbers": [8, 9, -1]}
]

select Values  \
  --filter 'numbers == [2, 3, 4]'  \
  --output_columns 'numbers'
[[0,0.0,0.0],[[[1],[["numbers","Int32"]],[[2,3,4]]]]]

logical_range_filter Increase outputting logs into query log.

logical_range_filter command comes to output a log for below timing.

We can see how much has been finished this command by this feature.

grndb Added support new option --since

We can specify a scope of an inspection.

We can specify the modified time as ISO 8601 format or -NUNIT format such as -3days or -2.5weeks format.

Here is an example that specifies --since option in ISO 8601 format:

% grmdb check --since=2019-06-24T18:16:22 /var/lib/groonga/db/db

In above example, the objects which are modified after 2019-06-24T18:16:22 are checked.

Here is an example that specifies --since option in -NUNIT format:

% grmdb check --since=-7d /var/lib/groonga/db/db

In above example, the objects which are modified in recent 7 days are checked.

Please also refer to grndb#since.

query Added default_operator.

We can customize operator when "keyword1 keyword2". "keyword1 Keyword2" is AND operation in default.

We can change "keyword1 keyword2"'s operator except AND as below.

table_create Products TABLE_NO_KEY

column_create Products name COLUMN_SCALAR ShortText

load --table Products
[
["name"],
["Groonga"],
["Mroonga"],
["Rroonga"],
["PGroonga"],
["Ruby"],
["PostgreSQL"]
]

select \
  --table Products \
  --filter 'query("name", "Groonga Mroonga", {"default_operator": "OR"})'
[
  [
    0,
    0.0,
    0.0
  ],
  [
    [
      [
        3
      ],
      [
        [
          "_id",
          "UInt32"
        ],
        [
          "name",
          "ShortText"
        ]
      ],
      [
        1,
        "Groonga"
      ],
      [
        4,
        "PGroonga"
      ],
      [
        2,
        "Mroonga"
      ]
    ]
  ]
]
komainu8 commented 5 years ago

ML(ja) アナウンス

groonga-dev (Japanese)

Groonga 9.0.4をリリースしました! http://groonga.org/ja/blog/2019/05/29/groonga-9.0.4.html

変更点一覧:

http://groonga.org/ja/docs/news.html#release-9-0-4

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

配列リテラルの複数要素をサポートしました。

以下のように filter 条件の中で複数要素を持った配列リテラルを使うことができます。

table_create Values TABLE_NO_KEY

column_create Values numbers COLUMN_VECTOR Int32

load --table Values
[
{"numbers": [2, 1, 3]},
{"numbers": [2, 3, 4]},
{"numbers": [8, 9, -1]}
]

select Values  \
  --filter 'numbers == [2, 3, 4]'  \
  --output_columns 'numbers'
[[0,0.0,0.0],[[[1],[["numbers","Int32"]],[[2,3,4]]]]]

ベクターの等価演算をサポートしました。

以下のようにベクターに対して等価演算を使うことができます。

table_create Values TABLE_NO_KEY

column_create Values numbers COLUMN_VECTOR Int32

load --table Values
[
{"numbers": [2, 1, 3]},
{"numbers": [2, 3, 4]},
{"numbers": [8, 9, -1]}
]

select Values  \
  --filter 'numbers == [2, 3, 4]'  \
  --output_columns 'numbers'
[[0,0.0,0.0],[[[1],[["numbers","Int32"]],[[2,3,4]]]]]

logical_range_filter 出力するクエリーログを追加しました。

logical_range_filter コマンドが、以下のタイミングでログを出力するようになります。

この機能によって、このコマンドがどこまで完了したかを見ることができます。

grndb Added support new option --since

検査の範囲を指定できます。

更新時刻は ISO 8601形式か -3days や -2.5weeksといった -NUNIT 形式で指定します。

以下は --since オプションをISO 8601形式で指定する例です。

% grmdb check --since=2019-06-24T18:16:22 /var/lib/groonga/db/db

上記の例では 2019-06-24T18:16:22 以降に更新されたオブジェクトをチェックします。

以下は --since オプションを -NUNIT 形式で指定する例です。

% grmdb check --since=-7d /var/lib/groonga/db/db

上記の例では、直近7日で更新されたものがチェックされます。

grndb#since も参考にしてください。

query default_operatorを追加しました。

"keyword1 keyword2"時の演算子をカスタマイズできます。 デフォルトでは、"keyword1 keyword2"はAND演算です。

以下のように、"keyword1 keyword2"の演算子をAND以外に変更できます。

table_create Products TABLE_NO_KEY

column_create Products name COLUMN_SCALAR ShortText

load --table Products
[
["name"],
["Groonga"],
["Mroonga"],
["Rroonga"],
["PGroonga"],
["Ruby"],
["PostgreSQL"]
]

select \
  --table Products \
  --filter 'query("name", "Groonga Mroonga", {"default_operator": "OR"})'
[
  [
    0,
    0.0,
    0.0
  ],
  [
    [
      [
        3
      ],
      [
        [
          "_id",
          "UInt32"
        ],
        [
          "name",
          "ShortText"
        ]
      ],
      [
        1,
        "Groonga"
      ],
      [
        4,
        "PGroonga"
      ],
      [
        2,
        "Mroonga"
      ]
    ]
  ]
]
komainu8 commented 5 years ago

Twitter(en)アナウンス

Groonga 9.0.4 has been released (2019-06-29) http://groonga.org/en/blog/2019/06/29/groonga-9.0.4.html In this release, We added a new option for grndb command. We can specify a scope of grndb check.
komainu8 commented 5 years ago

Twitter(ja)アナウンス

Groonga 9.0.4リリース (2019-06-29) http://groonga.org/ja/blog/2019/06/29/groonga-9.0.4.html 今回のリリースでは、grndbコマンドに新しいオプションを追加しました。grndb check の範囲を指定できるようになっています。
komainu8 commented 5 years ago

Facebook(en)アナウンス

Groonga 9.0.4 has been released!
Groonga is an open-source full-text search engine and column store.

In this release, we added a new option for grndb command. We can specify a scope of grndb check.
In addition to this, we also added an operation log into groonga.log and added checking 0byte files.

http://groonga.org/en/blog/2019/06/29/groonga-9.0.4.html
komainu8 commented 5 years ago

Facebook(ja)アナウンス

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

今回のリリースでは、"grndb"コマンドに新しいオプションを追加しました。

"grndb check"の範囲を指定できるようになっています。
他にも、0byteのファイルの検出や、ログの強化を行っています。

http://groonga.org/ja/blog/2019/06/29/groonga-9.0.4.html
kenhys commented 5 years ago

news is ready for now, I'll build packages.

kenhys commented 5 years ago

source: uploaded debian: uploaded ubuntu: uploaded rpm: uploaded win: waiting to build

kenhys commented 5 years ago

win: waiting to build

uploaded. @komainu8 now ready for announce.

komainu8 commented 5 years ago

アナウンス完了しました。

komainu8 commented 5 years ago

あとは、MSYS2のパッケージの更新です。(後日実施)

kenhys commented 5 years ago

更新済みなのでclose https://github.com/msys2/MINGW-packages/pull/5578