Contact Time 24 x 7

300 Convent Street, Suite 1330, San Antonio, Tx, 78205 USA

Contact Time 24 x 7
Contact us info@iterontech.com
Phone Number +41 61 272 95 95

Blog

top mobile app development company in europe28 NOV

Sunspot Solr Search – Einrichtung in der Rails App innerhalb von 5 Minuten

by Elixir Consultant

Sunspot Solr Search – Einrichtung in der Rails App innerhalb von 5 Minuten

Hier ist eine 5-minütige Anleitung für den Einstieg in die Sunspot Solr Search in Ruby on Rails Application. Am Ende dieses Blogs sollten Sie über eine funktionierende Volltextsuche in der Entwicklungsumgebung verfügen, die von einer lokal laufenden Solr-Instanz unterstützt wird.
Die Volltextsuche wird nie signifikant genutzt und die ganze Leistungsfähigkeit der Solr-Suchmaschine zusammen mit der ganzen Schönheit von Rubin; Sunspot[https://github.com/sunspot/sunspot] enthüllt alle leistungsfähigsten Suchfunktionen von Solr über eine API. Sunspot ist eine Rubinbibliothek für ausdrucksstarke, leistungsstarke Interaktion mit der Solr-Suchmaschine. Entwickler mögen Sunspot Solr Search mehr, weil es eine robuste, flexible Volltextsuche ohne boolesche Abfragen und ohne Zeichenkettenprogrammierung bedeutet.

Basisinstallation von SunSpot:

Vor der Installation von gem müssen wir JRE(Java Runtime Environment) für die solr-Konfiguration installieren.

$ sudo apt-get install openjdk-6-jre
Add the following line in to Gemfile:
gem ‘sunspot_rails’
gem ‘sunspot_solr’
Update bundle now:
$ bundle install

Führen Sie den folgenden Befehl aus, um die config/sunspot.yml zu generieren:

rails g sunspot_rails:install

In config/sunspot.yml können wir die SOLR-Standardkonfigurationen je nach Umgebung hinzufügen/ändern.

Produktion:

solr:
hostname:
port: 8983
log_level: WARNING
path: /solr/default

Die Standard-Portnummer der Entwicklungsumgebung ist 8982.
Nach dem Datenindex sehen wir die Liste der indizierten Daten unter

http://:/solr.
For example http://localhost:8982/solr.
And the “sunspot” setup is done.

Ausführen von SunSpot-Solr

Solr ist ein eigenständiger HTTP-Server, aber Sunspot wird mit einer Kopie davon geliefert, die bereits für die Arbeit mit Sunspot konfiguriert ist. Wenn sunspot_solr installiert wurde, starten Sie die gepackte Solr-Distribution mit:

bundle exec rake sunspot:solr:start

Wenn dieser Befehl zum ersten Mal in der Anwendungsinstanz ausgeführt wird, wird ein solr/-Verzeichnis im Rails-Anwendungsstamm erstellt. Dieser Stammordner enthält die Standardkonfiguration von Solr sowie die eigentlichen Datendateien für den Solr-Index.

SunSpot Solr Search Installation – Grundlegende Fehlerbehebung:

Wenn du siehst: Errno::ECONNREFUSED (Connection refused – connect(2)) Then perhaps:

Der Solr-Server ist nicht richtig gestartet, Befehl run:

$ rake sunspot:solr:start

Beim Start des solr-Servers ist ein Fehler aufgetreten.

tun

$ rake sunspot:solr:run

um den Server im Vordergrund zu betreiben und nach Fehlern zu suchen.

Wenn der gleiche Fehler nur in der Testumgebung auftritt, aber in der Entwicklungsumgebung gut funktioniert, dann überprüfen Sie die Umgebung und rufen Sie die Aufgabe entsprechend auf:

$ RAILS_ENV=test rake sunspot:solr:run

SunSpot Solr Search – Konfiguration des Anwendungsmodells:

In der Anwendung, die sich in der Entwicklung befindet, haben wir ein Fragemodell mit den Feldern Beschreibung und Kategorie. Um es für die Suche nach dem Schlüsselwort Sunspot Solr einzurichten, verwenden wir die suchbare Methode:

class Question < ActiveRecord::Base searchable do text :Description, :default_boost => 2
text : Category
end
end

Beachten Sie, dass das Schlüsselwort “text” hier bedeutet, dass wir ein Feld erstellen, das im Volltext durchsuchbar ist. Das Paket wird als in einzelne Keywords zerlegt betrachtet, und dann werden diese Keywords mit den Wörtern in Keyword-Suchanfragen verglichen. Es gibt noch eine ganze Reihe anderer Feldtypen, aber Text ist der einzige, der nach Schlüsselwörtern durchsucht wird.

Der Parameter :default_boost bedeutet dann, dass, sofern nicht anders angegeben, Wörter, die auf das Feld : Beschreibung passen, doppelt so relevant sind wie Wörter, die auf das Feld : Kategorie passen.
Jetzt, da Sunspot weiß, wie man das Fragemodell indexiert, müssen wir die vorhandenen Daten in Solr übernehmen. Jedes Mal, wenn eine Frage erstellt, aktualisiert oder zerstört wird, nimmt Sunspot::Rails automatisch die Änderung am Index vor; wir müssen nur dann eine vollständige Neuindizierung durchführen, wenn wir eine suchbare Definition für ein Modell hinzugefügt oder geändert haben.
Hinzufügen der Sunspot Solr Search to Rails Anwendung:
In der Schienenanwendung kann Sunspot Solr Search viel mehr als nur eine einfache Keyword-Suche durchführen, aber wir versuchen, in fünf Minuten einzurichten, wir haben jetzt nur die Grundlagen für das Anwendungs-Setup konzentriert.
Betrachten wir eine Situation, in der wir ein Suchformular haben, in dem ein Benutzer einige Keywords eingibt, das einen “:q”-Parameter an die Methode QuestionsController#search sendet.

class QuestionsController < ApplicationController def search @search = Question.search(:include => [:comments]) do keywords(params[:q])
end
end
end

Der Variablen @search ist ein Objekt der Klasse Sunspot::Search zugeordnet. Hier ist, wie wir mit ihm in der Ansicht arbeiten werden:

.results
– @search.each_hit_with_result do |title, question|
.result
%h2= h question.title
%p= h truncate(question.description, :length => 100)
.pagination
= will_paginate(@search.results)

Das war’s…… die schnelle Einrichtung der Sunspot Solr Search – fantastische Volltextsuche in der Rails-Anwendung. Wird in den nächsten Wochen mehr über die Suchkonzepte schreiben.

 

Tags:

Elixir Consultant

Leave a Comment

PRIVACY POLICY © 2019 ITERON All Rights Reserved