6

Tôi muốn sử dụng các khía cạnh cộng với tìm kiếm chuẩn. Có cách nào để làm cho kết quả tìm kiếm được tự "tìm kiếm" với các khía cạnh bằng cách sử dụng pg_search không?Có cách nào để sử dụng các khía cạnh với đá quý pg_search

Theo như tôi có thể biết, pg_search_scope loại trừ lẫn nhau (có cách giải quyết không?). Cảm ơn!

Ví dụ:

1) blog tìm kiếm với từ "test"

2) nhấp vào liên kết để có được chỉ bài viết từ kết quả trước đó cũng được đăng trong tháng sáu

Trả lời

8

Tôi là tác giả gốc và người bảo trì của pg_search.

A pg_search_scope hoạt động giống như bất kỳ phạm vi Bản ghi hoạt động nào khác, để bạn có thể chuỗi chúng. Ví dụ:

Vì vậy, giả sử bạn có mô hình Blog với pg_search_scope có tên search_title và một phạm vi khác có tên in_month có hai tham số, số tháng và số năm. Một cái gì đó như thế này:

class Blog < ActiveRecord::Base 
    include PgSearch 
    pg_search_scope :search_title, :against => :title 
    scope :in_month, lambda { |month_number, year_number| 
    where(:month => month_number, :year => year_number) 
    } 
end 

Sau đó, bạn có thể gọi nó như thế này:

Blog.search_title("broccoli").in_month(6, 2011) 

Điều ngược lại cũng nên làm việc:

Blog.in_month(6, 2011).search_title("broccoli") 

Và pagination các giải pháp như Kaminari cũng có thể được gọi vào kết thúc.