我在我的控制器中使用此搜索功能:
def search(query, search_term) do
(from u in query,
where: fragment("to_tsvector(?) @@ plainto_tsquery(?)", u.name, ^search_term),
order_by: fragment("ts_rank(to_tsvector(?), plainto_tsquery(?)) DESC", u.name, ^search_term))
end
它只适用于我模特的一个领域。我想搜索所有字段或能够同时搜索选定的几个(name_label,contacts,...)。 怎么做?
答案 0 :(得分:1)
您可以使用
(to_tsvector(col1) || to_tsvector(col2))) @@ plainto_tsquery(?)
连接文本搜索向量。