10 Apr
duccio

duccio il 10 April 2008 parla di Rails Snippet

Rails: acts_as_solr plugin

Solr è un server per le ricerche basto su la libreria lucene java con una interfaccia HTTP/XML. E’ buono quando c’è una grande collezione di documenti. acts_as_solr è un plugin Ruby on Rails che consente di utilizzarlo semplicemente nei modelli rails. Essenzialmente fornisce alcuni metodi come il find_by….

Installazione

E’ necessario installare il plugin con:

    1 ./script/plugin install svn://svn.railsfreaks.com/projects/acts_as_solr/trunk

Una volta installato il plugin dovete lanciare il server solr con rake solr:start.

Di default il server parte in development e crea l’indice nella cartella vendor/plugins/acts_as_solr/solr/solr/data/index/.

Se volete cambiare queste impostazioni dovete modificare il file in vendor/plugins/acts_as_solr/solr/solr/conf/solrconfig.xml. Successivamente dovete modificare, se serve, il file solr.yml in RAILS_ROOT/config, specificando l’url del server solr in production e in development.

Utilizzo nei modelli

Supponendo di avere un modello User, si possono indicizzare i campi su cui cercare semplicimente specificandoli nel modello con acts_as_solr:

    1 #Nel Modello
    2 class User
    3   acts_as_solr :fields => [:firstname, :lastname, :description]
    4 end
    5 
    6 #Nel controllore
    7 @results = Camera.find_by_solr("Skype")

Creare l’indice

Il metodo per fare il rebuild dell’indice è rebuild_solr_index. Per tabelle con molti record potrebbero presentarsi problemi in termini di prestazioni poichè ogni riga da indicizzare viene spedita a solr, per ovviare al problema piuttosto che salvare ogni singola riga, si possono salvare in batch definendo il parametro batch_size (ad esempio 200), così da aggiornare l’indice ogni 200 record.

Magari con un po’ più di tempo a disposizione riprendo l’argomento approfondendolo, visto che per adesso solr sembra un ottimo sostituto di acts_as_ferret.

2 Commenti a “Rails: acts_as_solr plugin”

  1. Filippo il 11 April 2008 alle 10:28 dice:

    Attenzione ragazzi che il link corretto è questo:
    http://acts-as-solr.railsfreaks.com

    Ottima risorsa comunque visto che in passato ho avuto diversi problemi con acts_as_ferret…mi metto subito all’opera per testare acts_as_solr.

    Grazie!

  2. duccio il 11 April 2008 alle 10:31 dice:

    Ciao Filippo,
    grazie per la segnalazione del link…

Scrivi un commento