Kagami-H
kagam****@auror*****
2016年 8月 30日 (火) 01:08:00 JST
お世話になります。各務です。 かずひこさんの、 [groonga-dev, 04107] に私も乗っかりたいです。 CentOS 7.2 mysql 5.7.14 mroonga 6.07 です。 現象としては同様ですが、一番長いキーワードでだけ MATCH しなくなります。 下記の対象のフィールドの search_text の先頭に、「福岡路線バス」と入っ ているのですが、 fld1 が 0 を返すようになります。 TokenBigram の NormalizerMySQLUnicodeCIExceptKanaCIKanaWithVoicedSoundMark で Index を作っていますが、Normalizer は別のものに変えても再発したので、 これは関係なさそうです。 SELECT id, search_text , MATCH(search_text) AGAINST('*D+ 福岡路線バス' in boolean mode) AS fld1 , MATCH(search_text) AGAINST('*D+ 福岡 岡路 路線 線バ バス ス' in boolean mode) AS fld2 , MATCH(search_text) AGAINST('*D+ 福岡 路線 バス' in boolean mode) AS fld3 FROM tm_article_view WHERE MATCH(search_text) AGAINST('*D+ 福岡 路線 バス' in boolean mode) ORDER BY id DESC LIMIT 10 Index の再作成をしたり、別テーブルにこのレコードだけを切り出すと、 fld1 は 1 を返す期待する結果になります。 かずひこさんと同様に、テーブルの値更新を行うと不具合が発生する事がある ようです。 (値を更新すると直る場合と壊れたままがあります。) fld2 と fld3 は。影響が見当たりませんでした。 Bigram で MATCH している数は変わらず、私の環境では長いキーワードでだけ MATCH しないものが発生しているような感じがしました。 (確認できる対象が少ないのですが、他のキーワードでもありました) 他にも検証に必要な情報があれば、お知らせください。 取り急ぎですが、あふぇくとみーまで。 P.S テーブル名#インデックス名 の Grooga のテーブル が Index でしたよね? これの中を覗けたら何か分からないでしょうか? ------------------------------------------------------------ 各務 洋 Email kagam****@auror*****