Principale utente con più risposte
Ricercare frase in un db

Domanda
-
Ciao a tutti
chiedo scusa se il mio problema per alcuni è semplicissimo.Ho appena iniziato a studiare la ricerca full text e ho la necessità di eseguire una ricerca, in un portale asp.net, di questo tipo:
Se l'utente inserisce per esempio in una text di ricerca 'amministratore condominio', vorrei avere come risultato anche 'amministratore di condomionio', 'amministrazione di condominio' ecc.Ho provato con freetext, ma ho ricevuto come risultato anche: 'amministratore sistema', 'amministratore azienda'.
Ho provato con Contains ma non va bene.
Come posso fare?Altra domanda: se devo eseguire la ricerca in più campi è possibile utilizzare una sola volta Freetext o Contains senza scrivere una cosa del genere: Freetext(...) or Freetext(...)
Dato che voglio approffondire come realizzare una ricerca e in genere i database, mi consigliate un libro(su come organizzare il db, su come eseguire query complesse ecc) o qualsiasi altra cosa?
Grazie mille
Risposte
-
Buongiorno Gemini78,
credo tu abbia necessità di determinare la cosiddetta distanza di Levenshtein, ovvero la differenza tra le due stringhe, corretta ed errata (o contenente typo vari).
A questo proposito, potresti pensare ad una funzione da implementare in SQL Server, per poi utilizzarla nei tuoi script di ricerca. A questo indirizzo trovi un'implementazione dell'algoritmo in T-SQL, mentre qui hai qualche esempio relativo al suo utilizzo.
Spero di averti dato un suggerimento che ti porti alla soluzione del problema.
Buon lavoro
Emiliano Musso // Microsoft MVP .NET
- Proposto come risposta Edoardo BenussiMVP, Moderator lunedì 16 maggio 2016 13:15
- Contrassegnato come risposta Fabrizio GiammariniMVP, Moderator lunedì 30 maggio 2016 14:13
-
Ciao Gemini78,
in aggiunta alle indicazioni fornite da Emiliano, riporto di seguito alcuni link a risorse che spiegano come utilizzare la ricerca full-text in SQL Server:
- SQL Server 2008 Full-Text Search: Internals and Enhancements
- SQL Server Full Text Search Language Features
- Best Practices for Integrated Full Text Search (iFTS) in SQL 2008
- Recommendations for using full-text queries on large catalogs
Ciao
Sergio Govoni
Data Platform MVP | MVP Profile | English Blog | Twitter | LinkedIn
- Modificato Sergio GovoniMVP, Moderator mercoledì 11 maggio 2016 22:27
- Proposto come risposta Edoardo BenussiMVP, Moderator lunedì 16 maggio 2016 13:15
- Contrassegnato come risposta Fabrizio GiammariniMVP, Moderator lunedì 30 maggio 2016 14:13
Tutte le risposte
-
Buongiorno Gemini78,
credo tu abbia necessità di determinare la cosiddetta distanza di Levenshtein, ovvero la differenza tra le due stringhe, corretta ed errata (o contenente typo vari).
A questo proposito, potresti pensare ad una funzione da implementare in SQL Server, per poi utilizzarla nei tuoi script di ricerca. A questo indirizzo trovi un'implementazione dell'algoritmo in T-SQL, mentre qui hai qualche esempio relativo al suo utilizzo.
Spero di averti dato un suggerimento che ti porti alla soluzione del problema.
Buon lavoro
Emiliano Musso // Microsoft MVP .NET
- Proposto come risposta Edoardo BenussiMVP, Moderator lunedì 16 maggio 2016 13:15
- Contrassegnato come risposta Fabrizio GiammariniMVP, Moderator lunedì 30 maggio 2016 14:13
-
Ciao Gemini78,
in aggiunta alle indicazioni fornite da Emiliano, riporto di seguito alcuni link a risorse che spiegano come utilizzare la ricerca full-text in SQL Server:
- SQL Server 2008 Full-Text Search: Internals and Enhancements
- SQL Server Full Text Search Language Features
- Best Practices for Integrated Full Text Search (iFTS) in SQL 2008
- Recommendations for using full-text queries on large catalogs
Ciao
Sergio Govoni
Data Platform MVP | MVP Profile | English Blog | Twitter | LinkedIn
- Modificato Sergio GovoniMVP, Moderator mercoledì 11 maggio 2016 22:27
- Proposto come risposta Edoardo BenussiMVP, Moderator lunedì 16 maggio 2016 13:15
- Contrassegnato come risposta Fabrizio GiammariniMVP, Moderator lunedì 30 maggio 2016 14:13