gpt4 book ai didi

ruby-on-rails - 使用地理编码的位置进行Rails范围Elasticsearch

转载 作者:行者123 更新时间:2023-12-02 22:26:08 29 4
gpt4 key购买 nike

我有一个使用Geocoder在用户附近找到供应商的应用。我目前在另一个模型中使用ElasticSearch,但我想将其扩展到我的Vendor模型。唯一的事情是,我不希望用户搜索所有供应商,而仅搜索距他们x距离之内的供应商。这样的事情可能吗?我已经浏览了一些 flex 搜索文档,但还没有发现任何东西。这是我的供应商模型和我的设计用户模型:

class Vendor < ActiveRecord::Base


geocoded_by :address
after_validation :geocode,
:if => lambda{ |obj| obj.address_changed? }
end

class User < ActiveRecord::Base

devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable

validates :zip, presence: true

geocoded_by :zip

after_validation :geocode

end

有什么想法吗?开放任何建议,因为我不确定如何实现。提前致谢!

最佳答案

我想您会在您的Elasticsearch索引中为供应商文档建立索引。如果没有,那么您需要同时存储位置坐标。

根据您的问题,我知道您想搜索用户附近位置的所有供应商。如果是这样,您可以在elasticsearch中使用地理位置查询。

您可以使用一个或任何一个。搜索查询中的坐标(经度和纬度)以及x距离。以下是一些有用的链接,可能会对您有所帮助:

http://www.elasticsearch.org/blog/geo-location-and-search/
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/query-dsl-geo-distance-filter.html

关于ruby-on-rails - 使用地理编码的位置进行Rails范围Elasticsearch,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19646746/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com