2012-02-03 34 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

相關問題