Die hier beschriebenen Features des Search Engine Servers (SES) beziehen sich auf den Rails Connector für CMS Fiona bis Version 6.9.1. Wenn Sie diese Features mit einem aktuellen Rails Connector weiter nutzen möchten, finden Sie den entsprechenden Quelltext in einem Git-Respository.
Der Rails Connector installiert einen Search-Controller, mit dem Suchanfragen an den Search Server gestellt werden können. Über einen zu diesem Controller gehörenden View werden die Suchergebnisseiten gestaltet und die Treffer verlinkt. Die mitgelieferte Suchseite können Sie in Ihrer Rails-Applikation mit der URL /search
aufrufen.
Wenn Sie den Rails Connector nach der Installationsanleitung installiert haben, liegt in Ihrer Rails-Applikation im Verzeichnis config/initializers
die Konfigurationsdatei rails_connector.rb
, in der alle verfügbaren Addons aktiviert oder deaktiviert werden können – darunter die Suche, die voreingestellt eingeschaltet ist. Um die Suche zu deaktivieren, entfernen Sie bitte den Eintrag :search
aus der Addon-Auflistung in dieser Datei.
Search Controller, Search Helper sowie mehrere Views, u. a. zur Darstellung des Suchformulars und der Trefferliste, werden vom RailsConnector bereitgestellt und sind im ausgelieferten Zustand bereits funktionsfähig.
Die mitgelieferten Views können Sie auf einfache Weise an Ihre Anforderungen anpassen.
Der Search Controller ist über die Konfigurationsdatei rails_connector.rb
konfigurierbar. Darin können der Host und der Port des Search Servers sowie die zu durchsuchende Collection geändert werden:
RailsConnector::Configuration.search_options = { :host => 'custom_host', :port => 3011, :collection => 'cm-contents-de' }
Sie können das Verhalten der Suche weiter anpassen, indem Sie in Ihrer Applikation einen eigenen Search Controller anlegen:
class SearchController < RailsConnector::DefaultSearchController # Ihre Anpassungen end
Der Search Controller macht von Objekten der Klasse SearchRequest
Gebrauch, um Suchanfragen auf Basis der eingegebenen Suchbegriffe zusammenzusetzen. Um steuern zu können, welche Dokumente gefunden werden dürfen und wie Benutzereingaben bereinigt und in Suchanfragen umgeformt werden, können Sie eine eigene SearchRequest
-Klasse in Ihrer Applikation anlegen:
class SearchRequest < RailsConnector::DefaultSearchRequest def self.sanitize(text) # Ihre Implementierung end def base_query # Ihre Implementierung für die Zusammenfügung # der `base_query_conditions` end def base_query_conditions super.merge( :eigene_bedingung => 'VQL Code' #, ... ) end end
Welche Methoden Sie überschreiben, hängt davon ab, welche Aspekte Sie anpassen möchten – die obige Auswahl ist daher nur als Beispiel zu verstehen.
Die Helpers können über einen ähnlichen Mechanismus überschrieben werden. Legen Sie hierzu in Ihrer Applikation eine Datei unter dem Namen app/helpers/search_helper.rb
mit folgendem Inhalt an:
module SearchHelper include RailsConnector::DefaultSearchHelper # Hier können Sie mitgelieferte Helpers überschreiben # und eigene anlegen. end
Damit Suchanfragen gestellt werden können, müssen der Search Server und die zu durchsuchenden Indizes für die Rails-Anwendung verfügbar gemacht werden. Hierfür gibt es im Wesentlichen die beiden folgenden Ansätze: