[groonga-dev,02074] Re: 複数の検索クエリがある場合のスニペットの取得対象について<Groonga>

Back to archive index

Kouhei Sutou kou****@clear*****
2014年 1月 27日 (月) 19:12:04 JST


須藤です。

In <CANM+****@mail*****>
  "[groonga-dev,02072] Re: 複数の検索クエリがある場合のスニペットの取得対象について<Groonga>" on Fri, 24 Jan 2014 13:54:59 +0900,
  Naoya Murakami <visio****@gmail*****> wrote:

> 結構いろいろ検討事項があるみたいですし、暫定的なものはsnippet_fullという
> 名前をやめて(かぶってあとで修正しないといけなくなりそうなので)、
> Tritonnライクなスニペット関数snippet_tritonnという名前のプラグインにしてみました。
> 
> https://github.com/naoa/groonga-function-snippet_tritonn

おぉ!

> 以前、トークナイザプラグインのサンプル作ってくれてたので、簡単にプラグイン化出来ました。

お役に立ててよかったです!

>>grn_snip_set_normalizer()は実装しました。
>>あわせて、grn_expr_snip_add_conditions()というのも追加してい
>>ます。
>>
>>grn_expr_snip()を使うと、grn_snipオブジェクトを作ってしまう
>>ので、ノーマライザーを変更するタイミングがなくなります。なの
>>で、grn_snip_open()した後に、grn_exprからキーワードを抽出で
>>きるようにしました。それが、grn_expr_snip_add_conditions()
>>です。これで、grn_exprからキーワードを抽出するときでもノーマ
>>ライザーを変更できます。
> 
> 迅速な対応ありがごとうございます!
> 勝手な要望に対応いただき、大変助かります。

いえいえ、要望をあげてもらってこちらこそありがとうございます。
どのように使いたいケースがあるかがわかると機能を検討しやすく
て助かります。

> これ、試してみたのですが、プラグインで追加したノーマライザ
> (groonga-normalizer-mysql等)だとうまく動かなくて困っています。
> 
> たとえば、NormalizerMySQLUnicodeCIだと、実行はできるのですが、
> うまくスニペットが取得できません。
> 以下の例では、「MySQL」を「mysql」で検索しているのですが、
> 検索にはヒットするものの、スニペットは取得できません。
> 
> https://github.com/naoa/groonga-function-snippet_tritonn/blob/master/test/suite/normalizer_unicode_ci.actual
>
> また、NormalizerMySQLUnicodeCIExceptKanaCIKanaWithVoicedSoundMarkだと、
> grn_snip_execの中でクラッシュしてしまいます。

あぁ、groonga-normalizer-mysqlに入っているノーマライザーは部
分的にしかノーマライザーの機能を実装していないからかもしれま
せん。ノーマライズ前は何バイト目にあった文字か、という情報を
入れれば動きそうな気が。。。
(空白を削除するとか、いわゆる全角文字を半角文字に正規化した
りすると何バイト目かというのがずれるので、それを補正するため
の情報です。)

>>そうではなく、snippet_html()は、何もスニペットがなかったとき
>>はnullを返すようにして(今は空の配列を返している)
>>
>>  snippet_html(...) || "フォールバック時の値"
>>
>>と書けるようにするのがいいと思いました。
> 
>>こう書けるなら何もスニペットがないときはユーザーが制御できま
>>す。
> 
> これができたらすごいいいですね!ゆるりと期待しております!

これはやっておきました!


-- 
須藤 功平 <kou****@clear*****>
株式会社クリアコード <http://www.clear-code.com/> (03-6231-7270)

Groongaサポート:
  http://groonga.org/ja/support/
パッチ採用はじめました:
  http://www.clear-code.com/recruitment/
コミットへのコメントサービスはじめました:
  http://www.clear-code.com/services/commit-comment.html




groonga-dev メーリングリストの案内
Back to archive index