[Senna-dev 816] Re: SennaQL 多重sortについて

Back to archive index

morit****@razil***** morit****@razil*****
2008年 3月 17日 (月) 19:45:36 JST


森です。

近々バグフィックス版を出すと思いますので(sen_index_infoの‥)
それに入ることになると思います。

ただし、もっと簡単に指定できてかつ高効率に動作するような複数キーソートの仕様も
検討してみたいと思います。

>>> 渡部 浩二 さんは書きました:
> 渡部です。
> 
> 返答ありがとうございます。
> 
> 現状はrev版ということですが、正式版としてのリリースは予定されているのでしょうか。
> 
> 
> On Mon, 17 Mar 2008 16:52:48 +0900
> morit****@razil***** wrote:
> 
> > 
> > 森です。
> > 
> > >>> 渡部 浩二 さんは書きました:
> > > 渡部です。
> > > 
> > > SennaQLで複数のフィールドに対してsortのかけ方が分かりません。
> > > 
> > > (sen-output (((<senna_test>.field_a : "test")::sort field_a 100 :asc)::sort field_b 100 :asc) '(.:key :field_a :field_b))
> > > 
> > > とした場合、最後のfield_bでソートされるのみで、field_aのソートが反映されません。
> > 
> > そうですね。この例ですと
> > 
> >  (<senna_test>.field_a : "test")
> > 
> > で返されるレコードセットを、field_aでソートし、
> > それから field_bでソートしなおしていることになりますので、
> > 最後のソート条件だけが有効になります。
> > 
> > > SennaQLでの多重ソートは可能なのでしょうか。
> > 
> > すみません。実はまだ作っていなかったのですが、
> > rev769で比較関数をsortの引数に指定できるようにしてみました。
> > 
> > (sen-output
> >  (((<senna_test>.field_a : "test") ::sort '(()) 100 :asc
> >    (lambda (x y)
> >      (if (= x.field_a y.field_a)
> >          (- x.field_b y.field_b)
> >          (- x.field_a y.field_a)))))
> >  '(.:key :field_a :field_b))
> > 
> > 組み込みの比較関数が貧弱なのでまだ実用性は低いかも知れませんが。。
> > 
> > > 分かる方いらっしゃいましたら、宜しくお願いします。
> > > 
> > > _______________________________________________
> > > Senna-dev mailing list
> > > Senna****@lists*****
> > > http://lists.sourceforge.jp/mailman/listinfo/senna-dev
> > > バグ報告方法:http://qwik.jp/senna/bug_report.html
> > > 
> > --
> > morita
> > 
> > _______________________________________________
> > Senna-dev mailing list
> > Senna****@lists*****
> > http://lists.sourceforge.jp/mailman/listinfo/senna-dev
> > バグ報告方法:http://qwik.jp/senna/bug_report.html
> 
> _______________________________________________
> Senna-dev mailing list
> Senna****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/senna-dev
> バグ報告方法:http://qwik.jp/senna/bug_report.html
> 
--
morita




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