如何使用 Ecto 和 PostgreSQL 全文搜索多个 "model" 字段
How to full text search more than one "model" field using Ecto and PostgreSQL
我在我的控制器中使用这个搜索功能:
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、联系人等)。
怎么做?
您可以使用
(to_tsvector(col1) || to_tsvector(col2))) @@ plainto_tsquery(?)
连接文本搜索向量。
我在我的控制器中使用这个搜索功能:
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、联系人等)。 怎么做?
您可以使用
(to_tsvector(col1) || to_tsvector(col2))) @@ plainto_tsquery(?)
连接文本搜索向量。