我有以下 SOLR 搜索,我试图在我的数据库中使用 Geohashes 基于 lat/lng 查找一些地方,并确保这些地方通过Affiliates
表格具有附属链接。
search = Sunspot.search(opts[:types]) do
any_of do
0.upto(opts[:range]) do
geohash = GeoHash.encode(place.lat, place.lng, precision)
neighbors = GeoHash.neighbors(geohash) rescue []
geohashes = [geohash] + neighbors
with(:affiliate_names, ['company_a', 'company_b'])
with(:"geohash_#{precision}", geohashes)
precision -= 1
end
end
without(:class, IgnoreClass) unless opts[:types].include?(VacationRental)
end
search.hits
我遇到的问题是这个搜索在 geohash 中的两个地方和affiliate_names 'company_a' 和'company_b' 的地方都有。具体来说,这两行:
with(:affiliate_names, ['company_a', 'company_b'])
with(:"geohash_#{precision}", geohashes)
我希望通过 geohash 和affiliate_name 过滤这些地点。现在,这两个 with 语句就像一个 OR。
如何进行 Solr 太阳黑子搜索以提取同时满足 with 条件的记录?