Ứng dụng Grails của tôi đang sử dụng plugin có thể tìm kiếm, được xây dựng trên Compass và Lucene để cung cấp chức năng tìm kiếm. Tôi có hai lớp học có thể tìm kiếm, nói tác giả và sách. Tôi đã ánh xạ các lớp này vào chỉ mục tìm kiếm để chỉ có thể tìm kiếm một số trường nhất định.truy vấn plugin tìm kiếm grails
Để thực hiện tìm kiếm trên cả hai lớp tôi chỉ đơn giản gọi
def results = searchableService.search(query)
Một trong những tính năng tốt đẹp của việc tìm kiếm trên cả hai lớp cùng một lúc, đó là đối tượng results
bao gồm siêu dữ liệu về số lượng kết quả bao gồm, số lượng kết quả có sẵn, chi tiết phân trang, v.v.
Gần đây tôi đã thêm cờ boolean approved
vào lớp Sách và tôi không bao giờ muốn sách không được chấp thuận xuất hiện trong kết quả tìm kiếm. Một tùy chọn là thay thế cuộc gọi ở trên bằng:
def bookResults = Book.search(query + " approved:1")
def authorResults = Author.search(query)
Tuy nhiên, bây giờ tôi cần tìm cách kết hợp siêu dữ liệu cho cả hai kết quả, có khả năng phức tạp (đặc biệt là phân trang).
Có cách nào để tìm kiếm trên Sách và Tác giả chỉ bằng một truy vấn, nhưng chỉ trả lại sách được phê duyệt?
Tôi ngưỡng mộ sự kiên trì của bạn. Giải pháp trên dường như hoạt động, cảm ơn rất nhiều! –
:-) hy vọng nắm bắt được tiền thưởng ... – rdmueller