- Home
- Categorie
- Coding e Sistemistica
- PHP
- Come costruisco un campo di ricerca attendibile con pertinenza?
-
Come costruisco un campo di ricerca attendibile con pertinenza?
Buon giorno a tutti,
mi trovo a dover creare una funzioncina che permetta di cercare del testo in un DB.
Quello che a me più interessa di ogni cosa è avere una pertinenza attendibile.
Ovvero se io ho un determinato testo all'interno del DB e una chiave inserita tramite form, vorrei poter ottenere una pertinenza attendibile tra la chiave cercata e le pertinenze effettivamente trovate.
Come posso impostare la query?
-
Cosa intendi con "pertinenza attendibile"???
Che il risultato contenga semplicemente stringa cercata o altro?
Se la risposta è altro dovresti essere più specifico nell'indicare il contesto ed i dati che stai trattando.
-
Nel senso che se io ho un campo DB contenente questa stringa:
Questo è un campo, contenente! punteggiatura messa a? caso .Vorrei semplicemente avere una pertinenza tra quello che io scrivo e quello che effettivamente c'è nel DB.
Avevo pensato di usare MATCH/AGAINST ed ho visto che non fa altro che resituire il numero di parole trovate.
Secondo voi sarebbe affidabile una pertinenza basata su n° parole_trovate / n° parole_totali ?
O c'è qualcosa di migliore?Ah, una cosa importante: come faccio ad estrarre (ecco spiegato l'esempio con la punteggiatura) solo le parole dal campo del DB e non tutte le varie punteggiature?
-
La punteggiatura puoi sostituirla con un espressione regolare.
Il numero di pertinenze trovate in un campo del database possono essere utilizzate eventualmente per ordinare i risultati prodotti da una normale query.
-
Quanto più parole uguali ci sono tra quello che l'utente cerca e quello che è presente nel db tanto più è migliore la ricerca e c'è più possibilità che l'utente stia cercando proprio quello.
Il metodo da te menzionato è buono per effettuare una cosa del genere (MATCH/AGAINST).
-
@Longo8 said:
Quanto più parole uguali ci sono tra quello che l'utente cerca e quello che è presente nel db tanto più è migliore la ricerca e c'è più possibilità che l'utente stia cercando proprio quello.
Il metodo da te menzionato è buono per effettuare una cosa del genere (MATCH/AGAINST).
Era quello che avevo in mente all'inizio.
Volevo solo un parere sull'efficienza di questa cosa
-
Bè potresti fare la prova con un'interrogazione tramite l'operatore LIKE e una con il metodo MATCH/AGAINST...quella che soddisfa meglio le tue richieste sarà quella che reputerai migliore in quel caso