Domanda

Non ho mai incontrato un app / classe come Zend Search Lucene prima, come ho sempre interrogato il mio database.

  

Zend_Search_Lucene opera con   documenti come oggetti atomici per   indicizzazione. Un documento è diviso in   campi denominati e campi hanno contenuti   che possono essere cercati.

     

Un documento è rappresentato dal   Classe Zend_Search_Lucene_Document, e   questi oggetti di questa classe contengono   istanze di Zend_Search_Lucene_Field   che rappresentano i campi della   documento.

     

E 'importante notare che qualsiasi   informazioni possono essere aggiunto all'indice.   informazioni specifiche dell'applicazione o   metadati possono essere memorizzate nel documento   campi, e poi recuperati con la   documento durante la ricerca.

Quindi questo è fondamentalmente dicendo che posso applicare questo alle banche dati tra cui nulla, la cosa chiave qui è fare gli indici per la ricerca.

Quello che sto cercando di afferrare è esattamente dove devo conservare gli indici a mia domanda, prendiamo per esempio abbiamo i telefoni memorizzati in un database, a produttori, i modelli -? Come devo classificare gli indici

Se sto facendo indici di utenti con diciamo, indirizzi io, ovviamente, non vorrei che loro di essere pubblicamente visibili, io sono solo confuso su come funziona il tutto insieme, se vi sono noti svantaggi, dei trucchi dovrei conoscere durante l'utilizzo.

È stato utile?

Soluzione

Un indice Lucene è memorizzato all'esterno del database. Mi piacerebbe conservarlo in una directory "data" come una sorella per i controller, modelli e punti di vista. Ma è possibile memorizzare ovunque; è sufficiente specificare il percorso quando si apre l'indice per l'interrogazione.

E 'fondamentalmente una copia ridondante dei documenti memorizzati nel database, e devi tenerli in sincronia te stesso. Questo è uno degli svantaggi: si deve scrivere il codice per popolare l'indice Lucene sulla base dei risultati di una query sul database. Quando si aggiungono dati al database, è necessario aggiornare l'indice di Lucene pure.

Un vantaggio di utilizzare una soluzione indice full-text esterno è che è possibile ridurre il carico di lavoro sul vostro RDBMS. Per trovare un documento, si esegue una ricerca utilizzando l'API Lucene. Il risultato dovrebbe includere un campo che contiene il valore della chiave primaria (come parte del documento, ma non c'è bisogno di rendere analizzato per FT di ricerca). Si ottiene questo campo indietro quando si esegue una ricerca Lucene, in modo da poter cercare la rispettiva riga nel database.

Non che aiutano a rispondere alla tua domanda?

Ho dato una presentazione di recente per MySQL Università a confronto soluzioni di ricerca full-text: http://forge.mysql.com/wiki/Practical_Full-Text_Search_in_MySQL

Ho anche pubblicare le mie diapositive a http://www.SlideShare.net/billkarwin .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top