Mam aplikację 4 szyn z liczbą modeli i widokami stron. Układ aplikacji mojej aplikacji zawiera pasek wyszukiwania. Ale teraz jest nieaktywny. Celem paska wyszukiwania jest umożliwienie użytkownikowi przeszukiwania wszystkich modeli dla wprowadzonego słowa kluczowego, co powoduje, że jest to wyszukiwanie globalne. Czy jest jakiś klejnot, który dokonuje powszechnego wyszukiwania? Czy trzeba to zrobić ręcznie za pomocą zapytań sql? Mogłem zobaczyć sposób wdrożenia wyszukiwania określonego modelu na jego stronie widoku. Ale chcę, żeby przeszukała wszystkie modele naraz. Jak powinienem to zrobić?Implementacja wyszukiwania uniwersalnego w szynach 4
Odpowiedz
Myślę, że najlepszym sposobem, w twoim przypadku jest użycie ElasticSearch. Czysty klejnot integracji jest dostępny pod numerem here. Linki do dokumentacji znajdują się na tej stronie.
Sunspot to jeden z najczęściej używanych klejnotów do dodawania wyszukiwania w aplikacji Rails.
indeksowania wygląda następująco:
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
i wyszukiwanie:
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
Sunspot umożliwia pojedynczy wyszukiwania w wielu modelach – lulalala
Jednym z dobrych podejść do tego będzie użycie gem 'searchkick'
, która korzysta z elastycznego przeszukiwania.
Zasoby dla Searchkick: https://github.com/ankane/searchkick https://github.com/ankane/searchkick#advanced
- 1. Czy istnieje implementacja drzewa wyszukiwania binarnego w .NET 4?
- 2. Klucz obcy w szynach 4
- 3. Przestarzała liczba w szynach 4
- 4. Wirtualne atrybuty w szynach 4
- 5. Nieokreślone parametry w szynach 4
- 6. Implementacja harmonogramu Rufusa w szynach 3
- 7. Szyny implementacja wyszukiwania z autouzupełnianiem
- 8. Implementacja drzewa B w drzewie wyszukiwania
- 9. Android Actionbar Implementacja widgetu wyszukiwania W ListFragment
- 10. Implementacja niestandardowego przepełnienia pamięci w ExtJS 4
- 11. Ustawienie domyślnego parametru wyszukiwania w Ransack na szynach
- 12. Używanie Uniwersalnego Interfejsu Szachowego
- 13. Dodaj nowy folder do ścieżki aktywów w szynach 4
- 14. Jak ustawić pliki javascript jako: domyślne w szynach 4?
- 15. Różnica między AbstractController i ActionController w szynach 4
- 16. Spinacz w szynach 4 - Atrybuty zabronione o silnych parametrach
- 17. jak wyłączyć ANSI kodów kolorów ucieczka w szynach 4 dzienniki
- 18. niedozwolonej parametry dwukrotnie zagnieżdżonych modeli w szynach 4
- 19. Nie można przypisać masowego chronione atrybuty w szynach 4
- 20. niezainicjowany stała motorowerem :: BSON w szynach 4 aplikacja na Heroku
- 21. Laravel 4/5 formularz wyszukiwania jak
- 22. Współczynnik zachowania uniwersalnego nośnika obrazu
- 23. Implementacja Quadtree w Mathematica
- 24. Uzyskaj ciąg odsyłający do łącza uniwersalnego?
- 25. Szukasz uniwersalnego sposobu analizy ceny na dziesiętną
- 26. odwołanie do uniwersalnego odniesienia do priorytetu odniesienia?
- 27. Jaki jest wpływ selektora uniwersalnego na wydajność?
- 28. Przekazywanie odwołania do funkcji jako uniwersalnego odniesienia
- 29. .NET 4.5 Nazwy tabeli uniwersalnego dostawcy członkostwa
- 30. Pomiń przed_filter w szynach
Nie gem utworzyć indeks za model? czy istnieje sposób na stworzenie jednego indeksu dla wszystkich modeli? lub alternatywnie jak przeszukujesz raz na wielu indeksach? wskazanie mi linku jest dla mnie wystarczająco dobre. –
Co powiesz na gem pg_search? Czy to jest wystarczająco warte. Ponieważ moja baza danych nie jest zbyt duża, by pozwolić sobie na plamę słoneczną. –
@VivekTripathi cóż, jeśli twoje wyszukiwanie jest tak proste, możesz skorzystać z 'pg_search', ale oznacza to, że utknąłeś w DB i nie jest on skalowalny, gdy twoja aplikacja się rozwija. – Almaron