[groonga-dev,04965] Re: ベクターカラムをテーブル参照検索した結果のsnippetが取れない

Back to archive index
shinonon shino****@jcom*****
2022年 4月 19日 (火) 14:37:20 JST


篠田です。

On Tue, 19 Apr 2022 10:47:45 +0900 (JST)
Sutou Kouhei <kou****@clear*****> wrote:

> snippet_html(vector)とvector_join(vector, "\n")を動くように
> しておきました。次のリリースから使えます。

ありがとうございます!
今月の肉の日を楽しみにしています!

> うーん、このタイミングでベクター内のどの要素がマッチしたかを
> 検出するには各要素のテキストをシーケンシャルサーチしないとい
> けない(インデックスを使って検索したときの情報は残っていない
> から)ので、びみょいです。

やっぱりそういう拠んどころのない事情(情報が残ってない)があるんですね。

以下、戯れ言です。
最初のメールの↓の例で、
> select Mails --match_columns subject,content.body --query 'ワード' --output_columns '_key,snippet_html(subject),snippet_html(content.body)'
> 
> →〜"records":[["<aaa @ bbb>",null,null]]}}
>   結果:NG
が、なぜ期待通りの結果が出ないのかが全く分からなくて、しばらくハマって
いたとき、まずは検索した content の中身を確認しようと、
--output_columns '_key,content' としたところ、

  〜"records":[["<aaa @ bbb>",[1,2]]]}}   ……(1)

と出て頭の中が?だらけになりました。
え?せめて、こう↓じゃないの?と...

  〜"records":[["<aaa @ bbb>",[2]]]}}     ……(2)

(少なくとも私の)ユーザー視点で期待している結果は (2) ですが、確かにエ
ンジニア視点(私もその端くれとして)では (1) の結果になることも理解でき
ますし、その方が動作仕様としてはスマートだとも思います。そして現在の仕
様が (1) で動作しているのでしたら、vector_extract_queried(content.body) 
とか、vector_extract_queried(content).body というような新関数ができれ
ば、色々応用も聞いて良さそうだなぁ、と思っていました。
ただ、考えつく応用先が snippet くらいなので、それだったら joinした文字
列に十分な長さがあればそれで全く問題ないんですよね、実際のところ.....

-- 
篠田 敦
shino****@jcom*****



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