Ruby on Rails Volltextsuche mit ElasticSearch und Tire

ElasticSearch ist ein OpenSource Java Suchserver auf Basis des Apache Lucene Projekts, jedoch ohne dessen vergleichsweise hohe Komplexität und Konfigurationsaufwand. Autor von ElasticSearch ist Shay Banon aus Israel. Die Hauptgründe ElasticSearch einzusetzen liegen in der Einfachheit, der Skalierbarkeit und der JSON/HTTP Schnittstelle bei der schemalos, dokumentenorientiert (JSON-Dokumente, NoSQL-mäßig) indiziert und gesucht werden kann. ElasticSearch ist extrem schnell, quasi Echtzeit und kann seine Daten auf mehrere Clusterknoten (Nodes) horizontal verteilen.

In diesem Artikel möchte ich ElasticSearch vorstellen, sowie eine Rails Blog-Anwendung mit Hilfe des Gems Tire an die ElasticSearch anbinden.

mehr...

Screencast: Bildbearbeitung mit RMagick

In diesem Screencast zeigt Ryan wie Bilder mit RMagick verändert und/oder verarbeitet werden. Teil des Screencastes widmet er auch CarrierWave das in Kombination mit RMagick für die Verarbeitung von hochgeladenen Bildern eingesetzt werden kann.

mehr...

Screencast: Bullet

Bullet ist ein Ruby gem das die abgesetzten SQL Befehle analysiert und beim Endecken von Verbesserungspotial den Anwender auf diese hinweist.
Es unterstützt dabei eine Vielzahl an Benachrichtigungsmöglichkeiten.

mehr...

Screencast: Ransack

Mit Ransack können auf eine Weise komplexe und anspruchsvolle Suchformulare erstellt werden. Es unterstützt auch bei der Darstellung der Suchergebnisse, indem es sortierbare Listen und dynamische Suchseiten erstellt.

mehr...

Screencast: MiniProfiler

MiniProfiler erlaubt es sich Geschwindigkeitsmessungen direkt auf der aufgerufenen Seite anzuschauen. Dabei werden auch die aufgerufenen SQL Befehle und wenn gewünscht Messungen für ausgesuchte Code-Blöcke.

mehr...

Screencast: Sidekiq

Sidekiq erlaubt es Prozesse im Hintergrund asynchron weiter zu verarbeiten während die Applikation bereits neue Anfragen entgegen nehmen kann. Es verwendet dabei Threads anstatt Forks und geht dadurch effizienter mit Resourcen um als vergleichsweise Resque.

mehr...

Screencast: Active Records Reputation System

Wenn der Durchschnittswert für ein Bewertungssystem oder die Summe von abgegebenen Stimmen berechnet werden müssen, dann lohnt sich ein Blick auf das activerecord-reputation-system gem. Ryan zeigt in diesem Screencast wie es verwendet wird und wie eine selbsterstellte Basis-Version gebaut werden kann.

mehr...

Screencast: Datenexport nach Excel oder CSV

Für Datenexporte wird häufig CSV und/oder Excel eingesetzt. In Rails ist es relativ einfach diese Formate zur Verfügung zu stellen. Wie dies funktioniert, welche Optionen zur Verfügung stehen und wie ein Excel-Export in verschiedenen Formaten aussehen kann, zeigt Ryan in diesem Screencast.

mehr...

Screencast: Authentifizierung über Facebook

In diesem Screencast zeigt Ryan wie eine neue Facebook erstellt und konfiguriert werden kann. Zusätzlich zeigt er wie das omniauth-facebook gem eingesetzt wird.

mehr...

Screencast: Brakeman

Brakeman ist ein Ruby-Gem mit dem der eigene Ruby-Code innerhalb einer Rails Applikation auf bekannte Sicherheitslücken geprüft werden kann. In diesem Screencast zeigt Ryan wie es eingesetzt werden kann.

mehr...

Screencast: Session Hijacking

Wenn nach einer Benutzer-Authentifizierung die zugehörigen Cookies über eine unsichere Verbindung ausgetauscht werden, kann dies das Ziel für Session-Hijacking-Angriffe werden. Was in einem solchen Fall getan werden muss und wie dies vermieden werden kann zeigt Ryan in diesem Screencast.

mehr...

Screencast: Squeel

Squeel bietet eine umfangreiche DSL an um SQL Abfrage in Ruby zu erstellen. Es baut auf ARel auf und bietet somit auch Zugriff auf dessen Features.

mehr...

Screencast: APIs schützen

Es gibt viele Möglichkeiten den Zugriff auf APIs zu schützen. In diesem Screencast zeigt Ryan erst einen möglichen Schutz über HTTP Basic Auth und später über Tokens die als Parameter übertragen werden.

mehr...

Screencast: Versionierung von REST APIs

APIs sollten konsistent sein. Dies ist allerdings schwer zu bewerkstelligen wenn verschiedene Formate unterstützt werden und/oder die APIs sich weiterentwickeln. In diesem Screencast zeigt Ryan wie eine API-Versionierung über die URL oder HTPP-Header realisiert werden können.

mehr...

Screencast: Das Rails API Gem

Applikationen die eine reine API zur Verfügung erstellen kommen immer häufiger vor und haben einen anderen Anspruch als konventionelle Web-Applikationen. Sie benötigen in der Regel keine/andere Views um Daten zur Verfügung zu stellen. In Rails kann für Applikationen die hauptsächlich APIs anbieten das Rails API Gem eingesetzt werden. Ryan zeigt in dieser Woche wie es verwendet werden kann.

mehr...

Screencast: Mehrseitige Formulare mit Wicked

Mehrseitige Formulare sind nicht immer einfach zu erstellen. Wicket ist ein Plugin das genau diese Nische bedient und die Erstellung vereinfacht. Mit Wicket lassen sich Controller in eine Serie von Schritten verwandeln um seitenweise Daten zu erfassen.

mehr...

Screencast: Queue Classic

Nachdem letzte Woche PostgreSQL allgemein vorgestellt wurde, geht es diese Woche weiter mit weiteren Features für die PostgreSQL benutzt werden kann. Neben der normal Datenbank-Funktionalität kann PostgreSQL auch als Queue für die Prozess-Verarbeitung eingesetzt werden. Somit wäre es nicht nötig noch eine zusätzliche Komponente für Hintergrundprozesse zu installieren und zu verwalten. Ryan zeigt diese Woche wie dies alles mit queue_classic gelöst werden kann.

mehr...

Screencast: Migration nach PostgreSQL

PostgreSQL ist eine objekt-orientierte open source Datenbank. Sie ist zwar nicht so weit verbreitet wie MySQL stellt jedoch eine interessante Alternative im Enterprise-Bereich. Ryan zeigt in diesem Screencast wie er von SQLite nach PostgreSQL wechselt und welche Dinge man dabei beachten muss.

mehr...

Screencast: DataTables

DataTables erleichtert die Erstellung von Tabellen in HTML und unterstützt dabei seitenweise Navigation, Sortierung und Suchen. Ryan zeigt in diesem Screencast wie es in Rails eingesetzt werden kann.

mehr...

Screencast: Globalize3

Rails bringt bereits standardmäßig die Möglichkeit mit eine mehrsprachige Applikation zu bauen. Dazu werden Textbausteine in Yaml-Dateien erstellt und in der Applikation verwendet. Dies reicht in den meisten Fällen aus, aber ist nur bedingt geeignet um große und dynamisch erstellte Textmengen zu verwalten. Hier hat Globalize3 seine Stärken. Globalize3 ist ein Gem mit welchem mehrsprachige Texte in Datenbanken verwaltet werden kann. Es ist relativ einfach einzubinden und zu verwenden . Ryan zeigt in diesem Screencast wie es funktioniert.

mehr...

Suchen auf rubyonrails.de

Aktuelle Rails Version + Abhängigkeiten:

Gem rails-3.0.0
actionmailer (= 3.0.0, runtime)
actionpack (= 3.0.0, runtime)
activerecord (= 3.0.0, runtime)
activeresource (= 3.0.0, runtime)
activesupport (= 3.0.0, runtime)
bundler (~> 1.0.0, runtime)
railties (= 3.0.0, runtime)

Rails auf Rubyforge
Rails auf Github