2012-02-03 35 views
1

我工作的Rails应用程序,我有三个不同的型号如下如何通过多个模型有效地在postresql中进行全文搜索?

产品型号

id | product_name| product_description 

用户模型

id | name | location | timestamp 

购物模式

id | product_id | user_id | location 

现在,在我的应用程序用户可以搜索不同的产品。 假设产品描述是xyz &纽约有人购买了它。所以现在我想以这样的方式进行搜索,即如果有人搜索xyz,当有人搜索纽约时,产品表中的条目将返回&它应该返回从纽约购买的所有产品。

我已经创建了产品和购物模型表的视图,如下所示。

SELECT DISTINCT product.id , product.description , shopping.location 
    FROM product LEFT JOIN shopping ON product.id = shopping.product_id group by product.id, product.description,shopping.location 

我正在使用texticle gem来搜索这个视图。

但上述观点的问题是假设来自10个不同地点的10人购买了xyz产品,然后在结果集中搜索产品说明会出现重复结果。如何避免这种重复?请帮忙。

回答

1

SELECT p.id,p.product_name,p.product_description,s.location FROM product p,shopping s WHERE p.description ='xyz'OR s.location ='New York'AND p.id = shopping。 product_id ORDER BY p.product_name

+0

嘿,同时搜索你可以一次输入一个词你可以输入xyz或newyork所以我的问题仍然没有解决 – 2012-02-03 10:33:53

+0

尝试使用'p.description ='xyz'或s.location ='纽约',让我知道它是否有效 – 2012-02-03 10:46:56

相关问题