So che questa domanda è abbastanza ampia, ma tutto ciò di cui ho veramente bisogno è una struttura di codice di best practice o un link a un buon tutorial.
Sto lavorando su un CRM che funziona su php e mysql. Attualmente, la nostra query di ricerca ha un aspetto simile al seguente:
SELECT * FROM contacts WHERE nome LIKE '% ric flair%'
Ora, questo è davvero stupido, ma è quello che equivale a. In effetti, stiamo usando istruzioni preparate, attivando più di 30 query di riga e unendo molte tabelle per verificare la proprietà e tutto il resto.
Ma se l'utente digita rick flair
o ric m flair
, la query di ricerca non lo troverà. Ora, potrei dividere la stringa in tre termini di ricerca, %ric%
, %m%
, %flair%
, e lavorare da lì, ma poi ho intenzione di ottenere ogni ragazzo di nome Ric (e Rick per quella materia), e allora Ric Flair potrebbe essere ovunque tra i risultati della ricerca.
Mi sembra di farlo come un dilettante e quando cerco informazioni sugli algoritmi di ricerca, tutto quello che posso trovare sono le persone che vogliono essere Google.
Qualsiasi consiglio professionale su questo sarebbe apprezzato.
Per chiarire
Si tratta di una funzione di ricerca globale che esamina contatti, telefoni, e-mail, attività, opportunità di vendita, conversazioni e note, cercando tutto ciò che è o è collegato alla stringa di ricerca (in questo caso, Ric Flair).
L'obiettivo principale qui è avere una ricerca "più intelligente", in modo che se digiti rick flair
o ric m. flair
, avrà comunque buone possibilità di restituire il contatto ric flair
in alto, anche se tu potrebbe avere persone chiamate Rick nella tua lista dei contatti. Forse perché il cognome è stato abbinato, e questo è più importante? O sto pensando troppo a questo?