Tôi có ứng dụng đường ray 4 với số kiểu và trang xem. Bố cục ứng dụng của ứng dụng của tôi chứa thanh tìm kiếm. Nhưng nó không hoạt động như bây giờ. Mục đích của thanh tìm kiếm là cho phép người dùng tìm kiếm thông qua tất cả các mô hình cho (các) từ khóa được nhập, về cơ bản làm cho nó trở thành một tìm kiếm toàn cầu. Có đá quý nào tìm kiếm toàn cầu không? Hoặc nó phải được thực hiện bằng tay thông qua các truy vấn sql? Tôi có thể xem cách triển khai tìm kiếm một mô hình cụ thể trên trang xem của nó. Nhưng tôi muốn nó tìm kiếm qua tất cả các mô hình cùng một lúc. Làm thế nào tôi nên đi về nó?Thực hiện tìm kiếm phổ quát trong đường ray 4
Trả lời
Tôi nghĩ rằng cách tốt nhất trong trường hợp của bạn là sử dụng ElasticSearch. Một viên ngọc tích hợp gọn gàng được cung cấp here. Các liên kết đến tài liệu được cung cấp trên trang đó.
Sunspot là một trong những đá quý được sử dụng nhiều nhất để thêm tìm kiếm trong ứng dụng Rails.
Indexing trông như thế này:
class Post < ActiveRecord::Base
searchable do
text :title, :body
text :comments do
comments.map { |comment| comment.body }
end
integer :blog_id
integer :author_id
integer :category_ids, :multiple => true
time :published_at
string :sort_title do
title.downcase.gsub(/^(an?|the)\b/, '')
end
end
end
Và tìm kiếm:
Post.search do
fulltext 'best pizza'
with :blog_id, 1
with(:published_at).less_than Time.now
order_by :published_at, :desc
paginate :page => 2, :per_page => 15
facet :category_ids, :author_id
end
vết đen mặt trời cho phép tìm kiếm duy nhất trên nhiều mô hình – lulalala
Một trong những cách tiếp cận tốt cho việc này là sử dụng gem 'searchkick'
sử dụng elasticsearch.
Tài nguyên cho Searchkick: https://github.com/ankane/searchkick https://github.com/ankane/searchkick#advanced
- 1. Mẫu Tìm kiếm Đường ray
- 2. Thực hiện tìm kiếm đường ray với tự động hoàn tất
- 3. Thư viện C++ phổ quát
- 4. Ransack, tìm kiếm nhiều cột, một trường, đường ray 3
- 5. đường ray ujs - javascript không thực hiện
- 6. Thực hiện tìm kiếm tùy chỉnh trong datatables.net với góc 4
- 7. Thực hiện tìm kiếm Prolog
- 8. Thực hiện tìm kiếm trong Asp.net MVC
- 9. hằng số phổ quát trong R
- 10. Thuộc tính ảo trong đường ray 4
- 11. thực hiện một đường ray before_filter trong ruby mà không có đường ray
- 12. Cách phổ biến nhất để thực hiện xác thực trong thanh ray 3 là gì?
- 13. Phạm vi đường ray tìm với người dùng hiện tại
- 14. Thực hiện tìm kiếm textField vào jTable
- 15. Tệp CSS biên dịch trước không tìm thấy với đường ray 4 đường ống nội dung
- 16. Thực hiện di chuyển dữ liệu lớn trong đường ray
- 17. Thực hiện lại lệnh FLUSHALL trong ứng dụng đường ray
- 18. Thực hiện lập lịch biểu Rufus trong đường ray 3
- 19. Đóng cửa và định lượng phổ quát
- 20. Mở rộng trình kết xuất đồ họa phổ quát góc 4
- 21. thực hiện tin nhắn tức thời cho đường ray?
- 22. Cách thực hiện tìm kiếm mặt?
- 23. Rails - Chức năng toàn cầu phổ quát
- 24. Cách lấy tuyến đường hiện tại trong đường ray
- 25. Thực hiện JavaScript phổ biến Algorthms
- 26. Cách thực hiện tìm kiếm trong Entity Framework 6?
- 27. tương đương với "find_all_by_id" trong đường ray 4
- 28. Đường ray thực hiện before_filter như thế nào?
- 29. Đường ray - tìm hoặc tạo - có tìm kiếm hoặc xây dựng không?
- 30. Vị trí SkSpriteNode trong trò chơi phổ quát
Không ngọc tạo ra một chỉ số cho mỗi mô hình? có cách nào để tạo một chỉ mục cho tất cả các mô hình không? Hoặc cách khác để bạn tìm kiếm một lần trên nhiều chỉ mục? chỉ cho tôi một liên kết là đủ tốt cho tôi. –
Làm thế nào về đá quý pg_search? Nó có xứng đáng không. Bởi vì cơ sở dữ liệu của tôi không phải là quá lớn để đủ khả năng vết đen mặt trời. –
@VivekTripathi tốt, nếu tìm kiếm của bạn là đơn giản, bạn có thể ofcource sử dụng 'pg_search', nhưng điều đó có nghĩa rằng bạn gặp khó khăn với DB của bạn và nó không hoàn toàn khả năng mở rộng khi ứng dụng của bạn phát triển. – Almaron