情况:我有用户模型。db 中的属性“meta_data”表示“文本”类型字段。在模型中,它由自定义类序列化。( serialize :meta_data, CustomJsonSerializer.new
)
这意味着,当我有一个用户实例时,我可以meta_data
使用 Hash。
User.first.meta_data['username']
问题:
我需要编写一个搜索函数,它将通过给定的字符串搜索用户。我可以通过在 rails ex 中手动构建搜索查询来做到这一点。User.where("email LIKE '%#{string}%'")...
但是 meta_data 呢?我也应该通过 LIKE 语句在此字段中搜索吗?如果我这样做,它将降低找到记录的相关性。
例如:
我有 2 个用户。其中一个有用户名“patrick”,另一个是“sergio”
db 中的元数据如下所示:
1){用户名:帕特里克}
2){用户名:塞尔吉奥}
我想找到 sergio ,我输入了一个搜索字符串 "ser" => 但我有 2 个结果,而不是一个。这个 meta_data 字符串“{uSERname: Patrick}”也有“ser”,所以它使这条记录无关紧要。
你知道如何解决它吗?