Kouhei Sutou
kou****@clear*****
2014年 10月 24日 (金) 17:52:09 JST
須藤です。 In <5449E****@fdiar*****> "[groonga-dev,02861] Re: BOOLEAN MODEの+とか-の意味" on Fri, 24 Oct 2014 07:45:49 +0200, Kazuhiko <kazuh****@fdiar*****> wrote: >> このパッチを当てた時の挙動はどう思いますか? >> >> -- >> diff --git a/ha_mroonga.cpp b/ha_mroonga.cpp >> index dd9967d..c105a62 100644 >> --- a/ha_mroonga.cpp >> +++ b/ha_mroonga.cpp >> @@ -7678,7 +7678,7 @@ grn_rc ha_mroonga::generic_ft_init_ext_prepare_expression_in_boolean_mode( >> >> const char *keyword, *keyword_original; >> uint keyword_length, keyword_length_original; >> - grn_operator default_operator = GRN_OP_OR; >> + grn_operator default_operator = GRN_OP_ADJUST; >> grn_bool weight_specified = false; >> keyword = keyword_original = key->ptr(); >> keyword_length = keyword_length_original = key->length(); >> -- >> >> 手元だとこんな感じになりました。 > > こちらでも試してみました。このパッチをあてた挙動だと、”must / must not" > と書いてあるMroongaのドキュメントにもMySQLのドキュメントにも整合してい > て、かつ、私がboolean modeに期待する挙動にも一致します。 確認ありがとうございます。 できれば、他の人にも次の観点で確認して欲しいんですが、 Mroongaを使っている人は協力してもらえませんか? * MySQLのドキュメントが示す挙動と同じ挙動か (網羅的だとうれしい) * MyISAMの挙動と同じ挙動か (網羅的だとうれしい。スコアの値の多い少ないは関係ない。) * InnoDBの挙動と同じ挙動か (網羅的だとうれしい。スコアの値の多い少ないは関係ない。) 別にカンペキにMySQLのドキュメントや他のストレージエンジンと 同じ挙動になっていなくてもいいとは思うのですが、近い方がよさ そうですし、違うならどう違うかはまとまってあるとうれしそうだ と思っています。 が!自分でパッチ当ててビルドして動かしてみてね、は敷居が高い ですよねぇ。変数で挙動を切り替えられるようにしておくといいの かしら。 あ、この変更は後方互換性が壊れるので、4.X系にはいれないです。 変数で切り替えられるようにしても、デフォルトではこれまでと同 じ挙動にします。 変更するにしても5.00をリリースしたタイミングになります。 -- 須藤 功平 <kou****@clear*****> 株式会社クリアコード <http://www.clear-code.com/> Groongaベースの全文検索システムを総合サポート: http://groonga.org/ja/support/ パッチ採用 - プログラミングが楽しい人向けの採用プロセス: http://www.clear-code.com/recruitment/ コードリーダー育成支援 - 自然とリーダブルコードを書くチームへ: http://www.clear-code.com/services/code-reader/