[英]PG_Search and multiple fields
我正在使用pg-search搜索模型。 我遇到的问题是,如果我搜索一个字段或另一个字段中的关键字,但是如果我输入的关键字我知道在2个字段中我正在使用它不会返回任何内容。
这是我的搜索
@providers = Provider.text_search(params[:query])
这是帮助者
def self.text_search(query)
if query.present?
where("address @@ :q or conditions @@ :q", q: "%#{query}%")
else
scoped
end
end
总结一下...如果我为地址输入2个关键字(即:邮政编码和街道名称)或2个条件关键字(即:全新),它可以工作,但如果我在搜索字段中输入新的邮政编码,则不会返回什么
这是查询
Provider Load (1.3ms) SELECT "providers".* FROM "providers" WHERE (address @@ '%new rancho%' or conditions @@ '%new rancho%')
编辑我忘了发布pg_search_scope
pg_search_scope :search, against: [:address, :conditions], using: { tsearch: { dictionary: "english", prefix: true, any_word: true} }
在你的模型中尝试这样的东西
include PgSearch
pg_search_scope :search, against: [:zipcode, :streetname],
using: {tsearch: {prefix: true, any_word: true}}
def self.text_search(query)
if query.present?
search(query)
else
scoped
end
end
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.