Introduzione un e Apache Solr Apache Lucene




Una panoramica di Apache Solr

Apache Solr (pronunciato venir solaire) è una nota ben di ricerca piattaforma open source che si estende il progetto Apache Lucene Bibliothèque. Apache Solr è di ricerca principalmente incredibilmente potente testo semplice, la navigazione sfaccettato, l'indicizzazione, clustering il, l'integrazione di base de données, e ricco di Documenti e di ricerca geospaziale. Principali punti di forza di Apache Solr comprennent l'alta Affidabilità e scalabilità, fornendo la ricerca e la réplique dell'indice.

Solr è scritto en Java e ha bisogno di conteneur de servlet de l'ONU viennent Jetty o Tomcat par eseguire il suo serveur di ricerca. Venez accennato dans precedenza, Solr si basa sul progetto di librairie Lucene e lo utilizza venir suo nucléo per la ricerca texte intégral e indicizzazione. Solr può essere integrato o utilizzato con qualsiasi linguaggio di programmazione. Infatti, Solr Offre REST chiama venir HTTP/XML API JSON e che lo rendono facile da comunicare. Tra API queste, Solr fornisce non sistema di configurazione esterna completa e potente par regolare come si vuole, senza scrivere una sola riga di Java. Ciò significa che possiamo configurare il nostro serveur passando argomenti all'avvio configurando non fichier XML facilmente comprensibili o semplicemente utilizzando una interfaccia basé sur le Web.




Una panoramica di Apache Lucene

Stato originariamente scritto nel 1999 da Doug Apache Lucene de coupe ed è uno dei più oggi importanti progetti della Apache Software Foundation. Venez abbiamo detto dans precedenza, Apache Lucene de Il Nucleo di Apache Solr. Qual è Lucene dans grado di soi? Si tratta di un indice texte intégral e motore di ricerca che è adatto par ogni testo immaginabile fi chier, quali PDF, HTML, Microsoft Word Documenti e documenti Open Office. Quando indicizzato, le informazioni testuali contenute nel documento può essere estratto. Una delle principali limitazioni di Lucene è che non può immagini indice.

Molti progetti utilizzano Apache Lucene venir base de loro. Di seguito sono riportati alcuni esempi:

• Apache Solr

• ElasticSearch

• Bussola

• DocFetcher

• Lucene.NET

Apache Solr - il di ricerca serveur in cima

Apache Lucene


Apache Solr de serveur non di ricerca costruito par sfruttare facilmente Il Nucleo indicizzazione potente fornito da Apache Lucene de REST utilizzando Chiamate, venez HTTP/XML e JSON API.

Le caratteristiche principali di Apache Solr sono i seguenti:

• Fornisce avanzate funzionalità di ricerca texte intégral

• È ottimizzato per il traffico web volume publicitaire alto

• Funziona su Interfacce aperte XML quali standard, JSON, e HTTP

• Fornisce Interfacce di amministrazione HTML completi

• Le serveur poursuivre statistiche sono più di esposte JMX per il télésurveillance

• Si è linearmente scalabile e fornisce réplique autoindex

• Ha le caratteristiche autofailover e salvataggio automatico

• Fornisce quasi dans le tempo reale, l'indicizzazione

• E 'flessibile e con una adattabile configurazione XML

• Ha un'architettura Estensibile

È Apache Lucene realmente differente dalla ricerca orientée base de données?


La parte delle persone maggior che hanno una certa già esperienza con la gestione di base de données avranno familiarità con gli indici dans la base relazionali, venez Microsoft SQL Server o Oracle Server. Un indice oggetto è un o, più precisamente, una struttura di dati che il tempo riduce richiesto par completare una richiesta copiando parte dei campi di ricerca in un ambiente rapido accesso. Tuttavia, il concetto di un indice è anche utilizzato al di fuori base de données relazionali. Funzionano Proprio viennent dans Apache Lucene, colombe i dati indicizzati vengono memorizzati altrove. In questa sezione, metteremo a confronto Come un moderno base de données relazionale sistema di gestione (SGBDR) e Apache Lucene gestire la stessa richiesta, che mira un recuperare tutte le informazioni jeans relatifs degli uomini di Formato 32 o 34.

La base de données è del tabella composto dai seguenti Informations: una chiave primaria par i di dimensioni des jeans (32, 34), non campo di colore, e un campo di genere. Una chiave primaria è Numéro Un incrementato che 'identification univocamente record non. Bénéficiant poi interrogare la tabella di base de données Segue venir:

Selezionare * da T_PRODUCT colombe genere = 'Maschili «type de e =' jeans'and color = 'blu' e size_hip = '32' e

size_inseam = '34 ';

Esempio di Codice 1 - Una dichiarazione SQL per la raccolta di informazioni su jeans degli uomini di dimensioni 32 34

Se non si ha familiarità con i base de données SQL o, si può immaginare foglio ONU exceller che contiene migliaia e migliaia di che fiche rappresentano diversi prodotti classificati par tipologia, colore e dimensione. La richiesta precedente intende "sort" nostro tavolo immaginario in modo che conte siamo dans grado di tutti i individuare prodotti che corrispondono un quelli che stiamo cercando, cioè, jeans da uomo en 32 34.

Par essere in grado di accelerare il recupero di questo tipo di informazioni, creiamo indici di tenere traccia di tutti i fiche che potrebbero avere non riferimento un criterio specifico non, come il colore. Dopo la costruzione di questo "indice di colore», avremo non elenco di tutti i prodotti che possiedono un colore non, ma per quanto riguarda i prodotti di blu? Se vogliamo tracciare il valore del criterio singolo, dobbiamo creare indice non invertito che traccia tutti i prodotti che sono blu.

Siamo dans grado di creare il numero di indici venir vogliamo. L'implementazione e, inoltre, l'utilizzo di indici par evitare una ricerca-è più analyse complète difficile di quanto sembri. Questo perché une domande venir, colombe e negozi venir indici e venu combinarli par formare criteri più Richieste viens i nostri jean blu hanno risposte diversifié un tecnologia sottostante seconda della.

Venez indicizzazione dans opere SGBDR


La maggior parte degli SGBDR moderni useranno non albero binario par memorizzare indice non. Un albero binario è una struttura dati che i dati mantiene ordinati e Permette ricerche, inserimenti, e la cancellazione dans le tempo logarítmico. Tempo logaritmica significa che il tempo par recuperare informazioni Specifiche all'interno dell'albero crescerà dans correlazione con la funzione di logaritmo matematica seconda della profondità della requête. Possiamo avere dati memorizzati e indicizzati par attributi come il colore o il tipo e recuperarli dans un tempo ragionevole un record de dimensioni seconda delle. Tuttavia, SGBDR può utilizzare solo indice non par tabella Contemporaneamente. Allora, venez Sara Recuperare i miei jeans? Solo Un IL SGBDR indice entro i disponibili quelli une base statistiche su, par e utilizzarlo completare la richiesta. E 'molto probabile che di migliaia fiche dévono sottoporre un scansione prima della SGBDR sarà dans grado di identificare jeans tutti i nostri uomini à Termini di dimensioni 32/34. Questa è meglio tecnica di una completa scansione ma non perfetto.

Venez dans Apache Lucene indicizzazione funziona

Apache Lucene utilizza bitset Compressi par memorizzare i nostri invertiti indici. Bitset sono una delle più strutture semplici e più di dati Antichi che contengono solo 0 e 1. supporta OPERAZIONI binarie viennent Intersezione, AND, OR, XOR, e che possono essere eseguite dans attimo, anche per i milioni e milioni di dischi. Così se sarà Lucene gestire la nostra richiesta? Diciamo che tutti i nostri campi fi sono indicizzati. Lucene recupererà tutti i "prodotti che sono blu", "sono i jeans", "sono per gli uomini", e "hanno una dimensione pari un 32/34". Poi, l'ONU Incrocio binario viene eseguito e otteniamo jeans nostri uomini à Termini di dimensioni 32/34. Questa tecnica viene con un elevato tête rispetto ai SGBDR par aggiornare indici perché una parte significativa dell'indice deve essere ricostruito par ogni aggiornamento. Tuttavia, gli ordini d'informazione e ricerca di più veloce volte grandezza rispetto ai motori SQL classici.

Esecuzione Solr

Solr Corre perfettamente con il molo conteneur de servlet. Dans realtà, Apache Solr comprend un piccolo impianto di che Jetty useremo dans questo tutoriel étape par étape. Alla fine del seguente tutoriel, avremo non pienamente funzionale esempio Apache Solr che viene eseguito all'interno Jetty ed è accessibile attraverso Internet.

Par seguire questo tutoriel, senza problemi, hai bisogno di una serie di condizioni. Questi Requisiti sono indicati viennent Segue:

• Usare Java 1.6 o superiore

Digitando java -version nel vostro terminale viene visualizzata la versione di

Java si sta utilizzando.

• 4.6.0 Apache Solr de Un scaricato da http: //www.apache.

org/dîner/closer.cgi/Lucene/Solr/4.6.0

• Garantire fi che il pare-feu non Blocca trafi co sulla porta 8983

• Un sistema Linux che è installato e funzionante

Se SI utilizza de Windows viennent sistema operativo principale, si consiglia di una macchina creare virtuale con VirtualBox e Ubuntu 12.04, che sono Liberamente scaricabile dal https://www.virtualbox.org/wiki/Downloads e http: //www.ubuntu .com/download/bureau, rispettivamente.

Se SI utilizza Linux Server, Solr manterrà il vostro terminale occupata dopo il suo inizio. Par rilasciare questi Terminali occupati e avevano quindi Terminali disponibili, è possibile utilizzare Ctrl + Alt + (F1 a F6).

Seguire questi passi par eseguire Solr:

1. Dans primo luogo, decomprimere il nostro Solr rilascio 4.6.0. All'interno di questo archivio, ci fi e diversifiée cartelle e cioè contrib, dist, documenti, annonce esempio, e le licenze. Ambiguità non c'è dans CIO che fanno queste cartelle.

Prima di andare avanti con questa ricetta, assicurarsi di avere il permesso di scrivere senza restrizioni nella cartella en cui vostro archivio Solr è contenuto e che il pare-feu non blocchi il traffico sulla porta 8983.

2. Passare répertoire alla esempio utilizzando i seguenti comandi: user: ~ $ ls Solr

utente: ~ solr/solr-4.3.0 $ unzip -q solr-4.3.0.zip

utente: ~ solr/solr-4.3.0 $ cd solr-4.3.0/esempio

utente: ~ solr/solr-4,3 0,0/esempio $ java -jar start.jar

Codice di esempio 2 - Avvio di comandi Apache Solr

3. Je comandi precedenti avviare il Jetty serveur servlet sulla porta

8983; si può vedere soi Apache Solr funziona correttamente Navigando une

http: // localhost: 8983/Solr /. Ora di dovreste vedere Solr Cruscotto, venez mostrato nello capture d'écran seguente:

Schermata di Dashboard di Solr

4. Ora avete una completamente dans esecuzione un'istanza di Apache Solr.

5. Par terminare l'esecuzione dell'istanza Apache Solr, premere Ctrl + C.



Dati di indicizzazione

Ora, abbiamo serveur Apache Solr non-up e-course, ma non ci sono dati all'interno.

In questa sezione, useremo i comandi POST par aggiungere, aggiornare ed i eliminare Documenti.

Infine, saremo dans grado di i nostri impegnare cambiamenti all'interno della nostra istanza di Apache Solr.

Esempio della casa di tuo Apache Solr répertoire contiene de un'altra les exampledocs di nomes L'. Questa exampledocs Répertoire contiene i di fichier esempio che i riassumono comandi che Solr accetta. Insieme un fichier questi di esempio, répertoire de questa contiene anche non JAR Java fi le nome di post.jar. Utilizzando i seguenti comandi, saremo dans grado di i registrare documenti denominati solr.xml e monitor.xml:

utente: ~ solr/solr-4.3.0/es/exampledocs $ java -jar

post.jar solr.xml monitor.xml

Esempio di Codice 3 - Comando di dati di indicizzazione

Utilizzando il Comando precedente, abbiamo pubblicato raison documenti (e solr.xml monitor.xml) al nostro serveur Apache Solr. Questi fichier raison contengono documenti espresse con la terminologia Solr venir Segue:

3007WFP Dell UltraSharp 3007WFP Widescreen Dell, Inc. Conca elettronica monitore 30 "LCD TFT d'une matrice attiva, 2560 x 1600, 0,25 Millimetri dot pitch, 700: 1 di contrasto Cavo USB 401,6 2199 6 vero 43,17614, -90,57341

Venez potete vedere, La Radice è un balisage seguito da un balisage. Il primo uno es spécifi l'operazione si Desidera eseguire, mentre il secondo Segna l'inizio di un nuovo documento. Dopo di che, le caratteristiche del documento sono espressi venir campi fi. Il post.jar fi chier invierà i documenti un Apache Solr e confermare le modifiche.

Ora abbiamo due documenti nuovissimi indicizzati dans Apache Solr. Siamo dans grado di una ricerca eseguire utilizzando l'interfaccia grafica da http: // localhost: 8983/solr e seleziona collezione 1 con il selezione di de base zone de liste. Una volta Li, è possibile selezionare il Domanda sottomenu e inserire solr (invece di *: *) nella Casella di testo denominato q. Infine, si può colpire la Esegui requête. Questo è intero processo illustrato nella Schermata seguente:

Vedrete il risultato richiesta forma XML. Inoltre, è possibile accedere direttamente un questa risposta XML generato automaticamente fi al seguente indirizzo:

http: // localhost: 8983/Solr/collection1/selezionare q = solr & WT = xml & trattino = true?

È stato utilizzato l'interfaccia Web Solr di che si compone di viste diversifiée. Nella Schermata precedente, 1 Punta al Menu di Navigazione.

2 è il pannello che di Permette requête creare par eseguire contro il vostro Apache Solr quando si è Domanda sottomenu.

3 punti alla q di testo. La Lettera q Qui è di ricerca sinonimo, ed è il luogo dove si entra le parole di ricerca.

4 punti verso la Esegui requête, che è necessario premere par eseguire la requête contro Solr. Infine, il pannello di destra mostra la risposta alle domande che eseguite.

Andremo approfondire i dettagli della risposta venir andare avanti nel nostro cammino di padroneggiare Apache Solr. Tuttavia, par ora, si notification che si può vedere che è da composto tête non di risposta contenente il tempo necessario par eseguire la requête, lo stato di requête e la requête stessa. Poi, abbiamo la risposta alla requête e il numero di che hanno documenti abbinato la nostra requête. Questa requête contiene i documenti e le loro campi.



Esecuzione Solr insieme con la incorporato

Jetty all'avvio

Par avere il nostro serveur Jetty incorporato dans esecuzione all'avvio con Solr, è necessario definire alcuni conf gurazione fi. Par seguire questo tutoriel senza problemi, dobbiamo rispettare la seguente serie di condizioni:

• e-running Avere non sistema Linux-up

• la copiare répertoire solr-4.3.0/esempio dans/etc/opt/solr

• Assicurarsi che il Comando java -jar funziona start.jar ancora sotto

/ Etc/opt/solr

Se il Comando non funziona dans/etc/opt/Solr, questo è probabilmente causa di un problema di permessi. Il/répertoire etc/e le poursuivre sottodirectory Protetti sono in un modo che consente Solo Un racine d'utilisateur par interagire con loro. Potrebbe essere il necessario utilizzare

chmod + x Comando sul start.jar fi e chmod -R 777 sur/etc/opt/solr par avere il permesso di eseguire il start.jar fi chier.

Al fin di avviare Jetty con Apache Solr all'avvio, dovremo scaricare diversi fi configurazione. Diamo un'occhiata un ciascuno di loro.

Lo scénario di Avvio Jetty

Il fichier prima configurazione è script lo di Avvio jetty.sh, che potete trovare qui:

http://mathieu-nayrolles.com/mastering-apache-solr/chap1/jetty.sh

Posizionare questo fi chier sotto /etc/init.d/.

La configurazione predefinita di Jetty

Ora, è possibile scaricare la configurazione predefinita di che verrà Jetty utilizzato dallo scénario precedente. Questo fi chier, di nome molo, deve essere posto sotto/etc/default/e deve contenere le seguenti righe:

JAVA_HOME =/usr/java/default JAVA_OPTIONS = "- Dsolr.solr.home =/opt/Solr/solr $ JAVA_OPTIONS" JETTY_HOME =/opt/solr JETTY_USER = SOLR JETTY_LOGS =/opt/Solr/logs

Esempio di codice 4 - Il déposer Jetty sotto etc/default

Se avete seguito i prerequisiti, è la sufficiente regolare

JAVA_HOME Variabili nell'ambiente. È anche possibile scaricare questo fi chier da

http://mathieu-nayrolles.com/mastering-apache-solr/chap1/jetty.

Par individuare en cui è installato Java, il utilizzare che Java o whereis

Comando java.

Creazione di un utente Solr


Ora creeremo non utente Solr nel nostro sistema. Buona norma E 'creare non utente di eseguire processi venir Solr e Jetty. Un bénéfi aggiunta un questo è che se il processo viene da compromessa minacce esterne, l'attaccante acquisirà i diritti dell'utente Solr invece dei diritti di racine. Je seguenti comandi sono usati par creare d'utilisateur non Solr:

$ Sudo add-utilisateur d/opt/solr -s/sbin/falso solr

$ Chown SOLR: SOLR -R/opt/solr

$ Chown SOLR: SOLR -R/var/log/solr # se si utilizza la cartella alternativa

per i connecter

Codice del campione 5 - Comandi utilizzati par utente non creare Solr

Creazione di fichier non di journal

Script de Lo di Avvio del Molo si aspetta che tutti gli I/O sono reindirizzato a una singola logfi le.

Par tarif CIO, dobbiamo scaricare molo-logging.xml fi chier da http: // mathieunayrolles.

com/mastering-apache-solr/chap1/pontile-logging.xml e posizionarlo sotto/opt/Solr /. Questo fi chier contiene il seguente pezzo di Codice:

/ Yyyy_mm_ dd.stderrout.log falso 90 GMT Reindirizzamento stderr/stdout par


Esempio di Codice 6 - Solr fichier di sotto registrazione opt/solr

Avvio Jetty

Ora ben la configurato Il nostro de Jetty Server. Dobbiamo solo avviarlo par utilizzare Solr.

Questo può essere il fatto utilizzando seguente Comando semplice:

/etc/init.d/jetty.sh inizio

Non dimenticare di concedere l'autorizzazione all'esecuzione di jetty.sh eseguendo il seguente Comando: sudo chmod + x /etc/init.d/jetty.sh

Installazione Solr con Jetty


Nella sezione precedente, abbiamo utilizzato il Jetty serveur servlet che è stato incorporato dans Solr, che aveva funzioni limiter de. Tuttavia, siamo dans grado di Installare non Jetty serveur autonomo al Fine di tutte le sfruttare appieno funzionalità di Apache Solr. Par seguire questo tutoriel senza problemi, dobbiamo tarif in modo che la solr-répertoire 4.3.0/esempio è stato copiato dans/etc/opt/Solr.

Il primo passo per questa completare operazione è quello di scaricare l'ultima versione completa del servlet du serveur Jetty eseguendo il Comando seguente:

$ Sudo apt-get install pontile

Codice di esempio 7 - di Comando Installare Jetty

Durante l'installazione, i fichier configurazione di che abbiamo creato dans /

etc/default/pontile saranno dans conflitto con quelli contenuti nella nuova installazione. Vi consigliamo di sovrascrivere i vecchi fichier con quelli nuovi. Anche configuration preferito dal de Questo Jetty.

OPERAZIONI sono OPERAZIONI di copia-incolla la puri de Le. Dovremo copiare e incollare intere répertoire venir Segue:

1. Sostituire tutti i fichier dans/opt/Solr/lib con di quelli pontile/lib.

2. Sostituire fichier il /opt/solr/start.jar con quello da Jetty.

3. je dépose copia-incolla dal pontile/etc/opt/Solr/etc.

La répertoire di installazione predefinita par serveur Jetty il è/usr/share/pontile.

Par assicurarsi che sia la configurazione tutto pronto, è possibile utilizzare nuovamente il seguente Comando par avviare Apache Solr: java -jar start.jar


Sommario

Dans questo capitolo, abbiamo ottenuto una panoramica di Apache Solr e viennent supporta Apache Lucene. Bénéficiant anche discusso la principale differenza tra Apache Solr ei classici de base de données. Bénéficiant de la imparato venir impostare il nostro esempio primo di Solr e venu eseguirlo con un Jetty serveur incorporato. Infine, abbiamo capito venir Installare Solr sul molo. Nel prossimo capitolo, ci addentreremo schema.xml e presentare l'esempio di lavoro che useremo dans questo livre.

Cliquer ici


(0)
(0)
Article précédent Choc

Commentaires - 0

Sans commentaires

Ajouter un commentaire

smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile
Caractères restants: 3000
captcha