我正在使用pg_search
搜索产品:
class Product
include PgSearch
pg_search_scope(
:search_for,
against: %i(sku),
associated_against: { translations: [:name, :description] },
using: { tsearch: { prefix: true } }
)
end
到目前为止,这个方法运行得很好。但是我想添加一个选项来搜索部分关键字,这样客户就可以通过键入“45678”来找到sku为“123456789”的产品。使用LIKE
很容易做到这一点,但无法将其与pg_search
组合在一起,因此结果将被组合在一起并进行排名。
如何让pg_search
通过部分字符串查找产品?
1条答案
按热度按时间lsmepo6l1#
PostGres的pg_trgm扩展将允许您在
word_similarity
属性设置为true
的字符串内进行模糊搜索。1.生成迁移
1.迁移文件
1.根据pg_search docs定义PG搜索范围