2

標準の構文で Sunspot on Rails 経由で Apache Solr を使用しています。

class Post < ActiveRecord::Base
  searchable do
    # ...
    latlon(:location) { Sunspot::Util::Coordinates.new(lat, lon) }
  end
end

検索すると:

Post.search do
  order_by_geodist(:location, 32, -68)
end

ヒットした検索場所からの距離を取得するにはどうすればよいですか? ヒットで geodist を返すために 100 万の異なる構文オプションを試しましたが、何も機能していないようです。

4

1 に答える 1

2

Sunspot 2.0.0.pre.120925では、http: //wiki.apache.org/solr/SpatialSearch#Returning_the_distanceでハックを組み込む必要があります。これにより、距離がスコアに追加され、次のようになります。

results = Post.search do
  fulltext "{!func}geodist(location_ll, 32, -68)"
  order_by(:score, :asc)
end

post = results.hits.first.result
distance = results.hits.first.score
于 2012-10-16T21:41:19.053 に答える