Sunspot Solr Search – Impostazione nell’applicazione Rails entro 5 minuti
Ecco una guida di 5 minuti per iniziare con Sunspot Solr Search in Ruby on Rails Application. Entro la fine di questo blog, si dovrebbe avere la ricerca full-text di lavoro in ambiente di sviluppo, alimentato da un’istanza locale in esecuzione Solr.
La ricerca fulltext non è mai stata usata in modo significativo e tutta la reale potenza del motore di ricerca Solr insieme a tutta la bellezza di Ruby; Sunspot [https://github.com/sunspot/sunspot] espone tutte le caratteristiche di ricerca più potenti di Solr utilizzando un’API. Sunspot è una libreria Ruby per un’interazione espressiva e potente con il motore di ricerca Solr. Agli sviluppatori piace di più Sunspot Solr Search perché significa una ricerca fulltext robusta e flessibile, senza query booleane e senza programmazione di stringhe.
Installazione di base di SunSpot:
Prima di installare gem , abbiamo bisogno di installare JRE (Java Runtime Environment) per la configurazione di solr
$ sudo apt-get installare openjdk-6-jre
Aggiungere la seguente riga in Gemfile:
gemma ‘sunspot_rails’.
gemma ‘sunspot_solr’.
Aggiorna il pacchetto ora:
$ bundle install
Eseguire il seguente comando per generare il config/sunspot.yml:
rails g sunspot_rails:install
In config/sunspot.yml possiamo aggiungere/modificare le configurazioni SOLR predefinite in base all’ambiente.
Produzione
solr:
hostname:
porta: 8983
livello log_di_livello: ATTENZIONE
percorso: /solr/default
Il numero di porta predefinito dell’ambiente di sviluppo è 8982.
Dopo l’indice dei dati, possiamo vedere l’elenco dei dati indicizzati in
http://:/solr
Per esempio: http://localhost:8982/solr.
E la configurazione “sunspot” è fatta.
Esecuzione di SunSpot-Solr
Solr è un server HTTP autonomo, ma Sunspot viene fornito con una copia già configurata per funzionare con Sunspot. Se sunspot_solr è stato installato, avviare la distribuzione Solr con il pacchetto:
bundle exec rake sunspot:solr:start
Quando questo comando viene eseguito per la prima volta nell’istanza dell’applicazione, creerà una cartella solr/ nella radice dell’applicazione Rails. Questa cartella principale contiene la configurazione predefinita di Solr, così come i file di dati effettivi per l’indice di Solr.
Installazione di SunSpot Solr Search Installation – Basic Trouble Shooting:
Se vedete: Errno::ECONNNREFUSED (Connessione rifiutata – connect(2)) Allora, forse:
Solr server non è avviato correttamente, eseguire il comando:
$ rake sunspot:solr:start
Si è verificato un errore nell’avvio del server solr
agire
$ rastrello sunspot:solr:run
per eseguire il server in primo piano e verificare la presenza di errori.
Se lo stesso errore si verifica solo in ambiente di test, ma lavorando bene in ambiente di sviluppo, controllare l’ambiente e richiamare il task in modo appropriato:
$ RAILS_ENV=test rake sunspot:solr:run
SunSpot Solr Search – Configurazione del modello di applicazione:
Nell’applicazione in fase di sviluppo, abbiamo un modello di domanda, con campi Descrizione e Categoria. Per impostare la ricerca per parola chiave Sunspot Solr, usiamo il metodo di ricerca:
classe Domanda < ActiveRecord::Base ricercabile fare testo :Descrizione, :default_boost => 2
testo : Categoria
fine
fine
Si noti che la parola chiave “testo” qui significa che stiamo creando un campo che è fulltext-searchable. Il pacchetto sarà considerato suddiviso in singole parole chiave, e poi queste parole chiave saranno confrontate con le parole nelle query di ricerca per parola chiave. Ci sono molti altri tipi di campo, ma il testo è l’unico che viene cercato per parole chiave.
Quindi il parametro :default_boost significa che, se non diversamente specificato, le parole che corrispondono al campo : Description devono essere considerate due volte più rilevanti delle parole che corrispondono al campo : Category.
Ora che Sunspot sa come indicizzare il modello Question, abbiamo bisogno di portare i dati esistenti in Solr. Ogni volta che una domanda viene creata, aggiornata o distrutta, Sunspot::Rails apporterà automaticamente la modifica all’indice; dobbiamo fare un reindice completo solo se abbiamo aggiunto o cambiato una definizione ricercabile per un modello.
Aggiunta di Sunspot Solr Search all’applicazione Rails:
Nell’applicazione rails, Sunspot Solr Search può fare molto di più di una semplice ricerca per parola chiave, ma stiamo cercando di impostare in cinque minuti, abbiamo concentrato solo i fondamenti per la configurazione dell’applicazione ora.
Consideriamo una situazione in cui abbiamo un modulo di ricerca in cui un utente digita alcune parole chiave, che invia un parametro “:q” al metodo QuestionsController#search.
class QuestionsController < ApplicationController def search @search = Question.search(:include => [:comments]) fa le parole chiave (params[:q]).
fine
fine
fine
Alla nostra variabile @search è assegnato un oggetto della classe Sunspot::Search. Ecco come lavoreremo con essa nella vista:
.results
– @ricerca.ogni_cosa_con_risultato fare |titolo, domanda|
.risultato
%h2= h interrogativo.titolo
%p= h troncare (domanda.descrizione, :lunghezza => 100)
.paginazione
= will_paginate(@risultati.della.ricerca)
Questo è……… la rapida configurazione di Sunspot Solr Search – impressionante ricerca fulltext nell’applicazione Rails. Scriverà di più sui concetti di ricerca nelle prossime settimane.
PRIVACY POLICY © 2021 ITERON All Rights Reserved