Konfigurera Sphinx i Rails-applikationen

Installera Sphinx

Kör bara följande tre kommandon på din server eller dev-maskin för att installera Sphinx:

./configure gör sudo make install

Det kommer att ställa in Sphinx med standard för användning med MySQL. Om du vill använda det med PostgreSQL, kör sedan konfigurera med följande flagga:

./configure --with-pgsql

Obs: du kan ladda ner sfinxen från //sphinxsearch.com/downloads//

Installera Thinking Sphinx

Även om det finns ett par Sphinx i  Rails applikation, jag valde att gå med Thinking Sphinx, eftersom det verkar vara den mest populära och funktionen komplett. Så du kan installera det som ett Rails-plugin med hjälp av skript/plugininstallation kommando:

skript/plugininstallation git://github.com/freelancing-god/thinking-sphinx.git

Skriv kod för att använda sfinxsökning:

Vi behöver nu indexera våra modeller. Detta består av att lägga till några små rader kod i varje modell som du vill kunna söka. Så låt oss säga att vi har en Blog-app (inte alla!), som har en Post-modell. Och den där Postmodellen innehåller det vanliga titel och beskrivning fält. Vi lägger därför till följande kodbit under våra associationsförklaringar i

app/models/post.rb: define_index gör indexer titel, beskrivning slut

Dessa mycket korta tre rader kommer att berätta för Thinking Sphinx att indexera titel och beskrivning fält av Posta modell och låter oss söka igenom alla våra inlägg. Nu behöver vi bara indexera och starta Sphinx. Och Thinking Sphinx gör detta väldigt enkelt med sina praktiska Rake-uppgifter.

Kör bara detta:

rake ts:rebuild

Det kommer att stoppa (om det startas), indexera och starta Sphinx åt dig. Nu måste vi skapa ett snabbt sökformulär. Detta kommer så småningom att bli en global webbplatssökning, och inte bara en Post-sökning. Så vi kommer att skapa en ny kontroller:

skript/generera kontrollersökning

Skapa sedan en vy på app/views/search/index.html.erb och placera formuläret i det:

Skapa nu en ny i din nya sökkontroll skapa handling:

def create @posts = Post.search params[:search] slut

Skapa din skapa se kl app/views/search/create.html.erb med lite kod för att visa din @inlägg på vanligt sätt.

Notera:

Vi kan till och med paginera våra resultat med WillPaginate-plugin:

def skapa

@posts = Post.search params[:search], :page => params[:page], :per_page => 10 end

Kontakta oss. Spara

Prenumerera för de senaste uppdateringarna

relaterade inlägg

Lämna en kommentar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *

sv_SESwedish