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 europe27 NOV

Sunspot Solr Search – Impostazione nell’applicazione Rails entro 5 minuti

by Elixir Consultant

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.

Tags:

Elixir Consultant

Leave a Comment

PRIVACY POLICY © 2019 ITERON All Rights Reserved