Domanda

Sto creando una pagina di ricerca dove possiamo trovare il prodotto inserendo il testo.

es: porta la notte

.

La mia domanda portare i record che contengono atleast parola da questo.

Ha bisogno:   1. In primo luogo dovrebbe riga contiene il record con la frase data.   2. seconda fila successiva più corrispondente.   3. Terza fila corrispondente successivo ... etc

Come raggiungere questo obiettivo. Esiste un algoritmo per questo. Sarà più utile se qualcuno condividere la vostra idea.

Modifica

Ricerca Ordine del campione:

1. Brings on the night
2. Whoever Brings the Night
3. Night Baseball Brings
4. Night ride
5. Night Round
6. Brings flower

Geetha

È stato utile?

Soluzione

Altri suggerimenti

Costruzione di un motore di ricerca è un impegno molto complesso, che fare con l'ambiguità, il linguaggio umano, errori di battitura, e molto altro ancora. Si dovrebbe cercare di utilizzare ciò che viene con il vostro motore di database. SQL Server e SQLite loro hanno fuori dalla scatola e la maggior parte degli altri database probabilmente hanno funzionalità simili. Questi motori non sono particolarmente buone, ma dovrebbe essere sufficiente per scenari semplici. Per il lavoro più serio, provare Lucene, che viene fornito in vari gusti per diversi linguaggi di programmazione.

Come soluzione molto semplice si potrebbe usare operatore LIKE di SQL. Invece di

  

selezionare object_name da nome_tabella dove parametro = qualcosa

Si farebbe

  

selezionare object_name da table_name dove parametro come qualcosa

Questo potrebbe funzionare per gli scenari molto semplici

Alcuni puntatori
- tentare la RDBMS ricerca a testo integrale o studiare soluzioni come Lucene / Solr
- ci sono implementazioni di (Levenshtein) in SQL , per non aver la mano così banale reso classifica
- n-grammi (bigrammi, trigrammi) può fare molto, si veda per esempio tutto le opzioni in Postgres di ricerca interno rispetto a MySQL o MSSQL

Ricerche RDBMS interni (Postgres potrebbe essere un'eccezione) di solito hanno troppo poco opzioni, l'implementazione proprio è di solito troppo duro o RDBMS non avrebbe permesso di farlo (in modo efficiente).

In Java hai Lucene

C'è anche una porta per esso in PHP (Zend Lucene).

Hai anche una porta per C # Lucene .NET

Solo cambiando i vostri modelli db si può integrare nel motore di ricerca.

Date un'occhiata. Ho usato Lucene in passato ed è sempre stato molto efficace ed efficiente.

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