[groonga-dev,00853] Re: rroonga での scoreの設定方法

Zurück zum Archiv-Index

Kouhei Sutou kou****@clear*****
2012年 5月 16日 (水) 14:40:36 JST


須藤です。

In <20120****@gmail*****>
  "[groonga-dev,00843] Re: rroonga での scoreの設定方法" on Thu, 10 May 2012 16:36:34 +0900,
  Shinya Kawaji <kawaj****@gmail*****> wrote:

>>   result_set = Groonga["Site"].select
>>   # ↑が--filter "1"相当
>>   result_set.select("_score = rand() && false", :syntax => :script)
>>   # ↑が--scorer "_score = rand()"相当
>>   result_set.sort(["_score"])
>>   # ↑が--sortby "_score"相当
> 
> ありがとうございます。なるほど、そのような書式をすると分かりました。
> まだ試せていないですが、やってみます。

はい!

> 善し悪しはよく分からないのですが、selfをすり替えることだけが問題であれば、
> ブロック引数を「関数を受け付けるためだけのレシーバ」にすることになります
> でしょうか。
> 
>   result_set.execute do |record|
>     record.score = record.eval do |exec|
>       exec.geo_distance(location, "128515259x503187188")
>     end
>   end

はい、そうなります。
ただ、これだと「exec.geo_distance」の部分がちょっと野暮った
いかなぁと思うんですよねぇ。groonga的には「geo_distance」は
メソッドではなくて関数なので、rroongaでもそんな感じで使って
いる雰囲気を出したいなぁと思うのです。

> しかし、:syntax => :script を使った方法は分かりましたので、書式について
> は「良いものを思いついてから」で良いかもしれません。

そうですねぇ。


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

groongaサポート:
  http://groonga.org/ja/support/
プログラミングが好きなソフトウェア開発者を募集中:
  http://www.clear-code.com/recruitment/




groonga-dev メーリングリストの案内
Zurück zum Archiv-Index