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

Back to archive index

Naoya Murakami visio****@gmail*****
2014年 1月 28日 (火) 08:47:25 JST


お世話になっております。村上です。

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

ご説明ありがとうございます!
おかげでgrn_stringのchecksが何者か把握することができました。

grn_string_set_checksを使って、grn_stringのchecksをぽつぽつ
入れていけば、いけそうです!

とりあえず、スペースのみのずれならできるようになりました。
まだ全角を含むときがうまくいってないのですが、normalizer.cの
utf8_normalizeの実装を参考にすれば、対応できそうです。
(この関数、1文字、2文字変数が多くて読むのが大変。。)


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

ありがとうございます!

これで先頭N文字を取得する関数とか所定のタグ範囲を取得する関数を作れば、
Googleみたいにスニペットがないときは、<meta name="description">の内容
を取得するとかできそうですね!

これらの関数は、カラムの値を文字列操作するだけでいいので、わりかし簡単に
作れそうですね。(C言語で文字列操作するのは大変そうですが。。)

以上、よろしくお願いします。



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