Come faccio a implementare la Funzionalità di Ricerca in un sito web?[chiuso]

StackOverflow https://stackoverflow.com/questions/34314

  •  09-06-2019
  •  | 
  •  

Domanda

Vorrei implementare la funzionalità di ricerca per un sito web (per scontato che è simile al MODO).Non ho voglia di usare Google cerca di cose come che.

La mia domanda è:

Come posso implementare questo?

Ci sono due metodi sono a conoscenza di:

  1. Ricerca tutti i database dell'applicazione quando l'utente dà il suo query.
  2. L'indice di tutti i dati che ho e di conservarlo in un luogo altro e query da lì (come quello che fa Google).

Qualcuno può dirmi dove andare?Quali sono i pro e i contro?

Meglio, ci sono modi migliori per fare questo?

È stato utile?

Soluzione

Utilizzare lucene,
http://lucene.apache.org/java/docs/

Apache Lucene è un ad alte prestazioni, testo completo dei motori di ricerca scritto interamente in Java.Si tratta di una tecnologia, adatto per quasi ogni applicazione che richiede la ricerca full-text, soprattutto cross-platform.

E ' disponibile in java e .net.È anche disponibile in php in forma di zend framework modulo.

Lucene fa quello che si voleva(indicizzazione degli elementi cercati), è necessario tenere traccia di un indice di lucene, ma è molto meglio che fare una ricerca in un database in termini di prestazioni.BTW, COSÌ la ricerca è alimentato da lucene.:D

Altri suggerimenti

Dipende da come completo il tuo sito web e quanto si vuole fare da soli.

Se si esegue un un sito di piccole dimensioni senza ulteriori possibilità di aggiungere una ricerca personalizzata, lasciate fare il lavoro a google (magari aggiungere un sitemap) e utilizzare il google ricerca personalizzata.

Se si esegue un medio sito con un motore sql utilizzare le funzionalità di ricerca del tuo motore sql.

Se si esegue alcuni più pesante stack di software come J2EE o .Net use Lucene, un grande, potente motore di ricerca o la sua .Net clone lucene.Net

Se si desidera abstract la ricerca dall'applicazione e di essere in grado di eseguire query in un linguaggio neutro modo con XML/HTTP e JSON Api, guarda solr.Solr corre lucene in background, ma aggiunge una comoda interfaccia web ad esso.

Si potrebbe desiderare di avere uno sguardo a xapian e il omega front-end.Sostanzialmente si tratta di un toolkit su cui si può costruire la funzionalità di ricerca.

Il modo migliore per affrontare questo dipenderà da come si costruire le tue pagine.

Se essi sono spesso composte da un sacco di diversi record (come immagino overflow dello stack pagine), l'indicizzazione approccio dovrebbe dare risultati migliori, a meno che non hai messo un sacco di lavoro in modo efficace ricostruire le pagine del database lato.

Lo svantaggio che si hanno con l'indicizzazione approccio è il tempo.Ci sono soluzioni alternative (come Google sitemap roba), ma sono anche complesso da ottenere.

Se si va con il percorso del database, anche essere consapevoli del fatto che i moderni motori di ricerca funzionano molto meglio se hanno il collegamento dei dati di processo, in modo da trovare un sistema in grado di comprendere i collegamenti tra le pagine di' nel database avrà un effetto positivo.

Se siete su piattaforma Microsoft si potrebbe utilizzare il servizio di Indicizzazione.Questo si integra molto facilmente con siti web IIS.

Ha tutte le caratteristiche di base, come la ricerca full text, classifica, exlcude e includono alcuni tipi di file, e si può aggiungere la propria meta informazioni anche tramite meta tag delle pagine html.

Fare un google e troverete tonnellate!

Questo è un po ' ortogonale alla tua domanda, ma mi raccomando l'idea di un soggiorno di ricerca.Che è, per eseguire una ricerca che non è mai stata eseguita, il sito web invia una query al /ricerche/.A ri-eseguire una ricerca, il sito Diventa /ricerche/{id}

Ci sono alcuni buoni documenti per essere trovati per quanto riguarda questo, per esempio qui.

(Detto questo, mi piace l'indicizzazione, se possibile, è un programma di ottimizzazione, e quindi può essere prematuro.)

Se si utilizza l'applicazione di Java EE stack e si utilizza Sospensione è possibile utilizzare il Bussola Quadro mantenere un indice di ricerca del database.Il Framework utilizza la Bussola Lucene sotto il cofano.

L'unico problema è che non è possibile replicare il tuo indice di ricerca.Quindi è necessario utilizzare un cluster di database per contenere l'indice tabelle o utilizzare la più recente griglia indice a base di meccanismi di memorizzazione che sono stati aggiunti alla Bussola Framework 2.x.

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