Ich habe eine Schiene 4 Anwendung mit der Anzahl der Modelle und Ansicht Seiten. Das Anwendungslayout meiner Anwendung enthält eine Suchleiste. Aber es ist jetzt inaktiv. Der Zweck der Suchleiste ist es, dem Benutzer zu ermöglichen, alle Modelle nach den eingegebenen Schlüsselwörtern zu durchsuchen, was im Grunde eine globale Suche ergibt. Gibt es ein Juwel, das universelle Suche durchführt? Oder es muss manuell über SQL-Abfragen getan werden? Ich könnte sehen, wie Sie die Suche nach einem bestimmten Modell auf seiner Ansichtsseite implementieren können. Aber ich möchte, dass alle Modelle gleichzeitig durchsucht werden. Wie soll ich vorgehen?Implementieren Universelle Suche in Schienen 4
6
A
Antwort
5
Ich denke, der beste Weg, in Ihrem Fall ist Elasticsearch zu verwenden. Ein ordentliches Integrationsstück wird zur Verfügung gestellt here. Links zur Dokumentation finden Sie auf dieser Seite.
3
Sunspot ist einer der am häufigsten verwendeten Edelstein, um Suche in einer Rails App hinzuzufügen.
Indexing sieht wie folgt aus:
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
und Suche:
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
+1
Sunspot – lulalala
3
Einer der guten Ansatz dafür ist die Verwendung gem 'searchkick'
, die elasticsearch verwendet.
Ressourcen für Searchkick: https://github.com/ankane/searchkick https://github.com/ankane/searchkick#advanced
Verwandte Themen
- 1. Suche Funktionalität Schienen 4
- 2. Fremdschlüssel in Schienen 4
- 3. Fremdschlüssel in Schienen 4
- 4. Veraltete Anzahl in Schienen 4
- 5. Unerreichte Parameter in Schienen 4
- 6. Griff link_to_remote in Schienen 4
- 7. Virtuelle Attribute in Schienen 4
- 8. Schienen 4 in Aktion Gerät
- 9. Routing-Fehler in Schienen 4
- 10. Mehrere Suchfelder in Schienen 4
- 11. Schienen 4 - Heroku - Produktionsfehler
- 12. Binäre Suche in Objekten implementieren
- 13. Android: implementieren Suche in appbar
- 14. Schienen 4 - Scopes
- 15. Schienen 4 simple_form collection_select
- 16. Schienen 4 Verschachtelung Layouts
- 17. Schienen 4: Sitzungsablauf?
- 18. Schienen 4 Gruppendubletten
- 19. Fahrplan App für Schienen 4
- 20. Heroku Schienen 4 + Puma-Einsatz
- 21. Sendgrid auf Schienen eingerichtet 4
- 22. Schienen 4: accepts_nested_attributes_for und Massenzuweisung
- 23. Schienen 4: before_filter vs. before_action
- 24. Schienen 4 - Routen und Pfade
- 25. Einfache Form - Schienen 4 - Bearbeitung
- 26. Schienen 4, Standardformularbuilder global ändern
- 27. Schienen 4 Unerreichte Parameter: Produkte
- 28. Schienen 4: Einfaches Suchformular mit falscher Weiterleitung
- 29. Schienen 4: HABTM Checkbox-Ausgabe - kein Fehler
- 30. Schienen, validates_format_of - mindestens 4 Buchstaben
einzelne Suche über mehrere Modelle erlaubt Hat nicht der Edelstein einen Index pro Modell erstellen? Gibt es eine Möglichkeit, einen Index für alle Modelle zu erstellen? Oder wie suchst du einmal auf mehreren Indizes? mich auf einen Link zu zeigen, ist gut genug für mich. –
Wie wäre es mit pg_search Juwel? Ist es genug wert? Weil meine Datenbank nicht zu groß ist, um sich einen Sonnenfleck zu leisten. –
@VivekTripathi Nun, wenn deine Suche so einfach ist, könntest du 'pg_search' verwenden, aber das bedeutet, dass du in deiner Datenbank hängen bleibst und sie nicht ganz skalierbar ist, wenn deine App wächst. – Almaron