morit****@razil*****
morit****@razil*****
2008年 2月 6日 (水) 01:32:09 JST
森と申します。よろしくお願いします。 このメッセージはboolean クエリの解釈に失敗した場合に出力されます。 booleanモードでは、http://qwik.jp/senna/query.html に書かれている 書式に従ってクエリをパースしますが、不正なクエリを受け取って パースに失敗すると、メッセージをsennaログに出力し、該当部分を無視します。 パースに失敗するのは、単語の先頭が'*'であった場合や、 クエリの末尾が'('であった場合などです。 例えば以下のようなクエリが該当します。 match(acol, bcol) against ('(*^_^*)' in boolean mode) 文字列としてこれを検索したい場合には、boolean modeを使用しないか、 match(acol, bcol) against ('"(*^_^*)"' in boolean mode) のように二重引用符で括る方法があります。 このようなメッセージが頻発するのであれば、クエリの書式がユーザさんに あまり理解されてないのかも知れないですね。。 >>> Kadir Tokyo さんは書きました: > はじめて投稿させて頂きます。KTと申します。 > よろしくお願いします。 > > 過去ログを検索しても該当するものが見当たらなかったため、 > ご存知の方がいらっしゃればと思い、投稿させて頂きました。 > > 本番環境を、tritonn1.0.8バイナリ版(mysql5.0.51+senna1.0.9) > にバージョンアップしたところ、NOTICEレベルで以下のsennaログが > 頻発するようになりました。 > ---------------------------------------------------------------------------------------- > 01/30:18:55:50.214700|n|115| invalid object assigned in query > 01/30:18:55:50.218086|n|115| invalid object assigned in query > 01/30:18:57:36.603948|n|120| invalid object assigned in query > 01/30:18:57:36.608632|n|120| invalid object assigned in query > ・・・・ > ---------------------------------------------------------------------------------------- > > Mecabは使用せず、ngram(デフォルトのバイグラム)のみです。 > 更新バッチと検索が被ったときに出るかと疑いましたが、 > 更新のないときも出力されます。 > 全文検索クエリは、800Mほどのテーブルに対して、 > 900MのSENNAインデックスを使う次のものです。 > select * from A > where match(acol, bcol) against ('xxx' in boolean mode) > and flag = 1 > order by ccol; > > senna_2indパラメータを使用していますが、 > force index句は使用していません。 > > 上記NOTICEログは気にしないでもよろしいのでしょうか。それとも > 回避すべきなのでしょうか。 > ご教授頂けたらと思います。 > > よろしくお願い致します。 > > > > > 全文検索できなくなったわけではなく、一見問題なさそうに > 見えましたが、見知らぬところでユーザ影響があるといけないので、 > 念のため以前のバージョンに切り戻しました。 > _______________________________________________ > Senna-dev mailing list > Senna****@lists***** > http://lists.sourceforge.jp/mailman/listinfo/senna-dev > バグ報告方法:http://qwik.jp/senna/bug_report.html > -- morita