Bonjour Je suis inquiet de savoir comment implémenter une requête de recherche simple, mon scénario est le suivant:
SELECT * ,MATCH(tag) AGAINST('+1111','+2222','+3333' IN BOOLEAN MODE) as score FROM table ORDER BY score DESC ;
3 Réponses :
Vos recherches ne sont pas équivalentes. comme% 1% code> trouvera tout ce qui contient un
1 code>, par ex.
100 code>,
911 code>,
0.1 code>. C'est juste un match de sous-chaîne simple.
Match ('+1') CODE> fonctionnerait théoriquement, mais FullText par défaut ignore les "mots" de <4 caractères. Cependant, en supposant que vous avez détendu la limite de longueur complexes,
+1 code> trouverait tout
indépendant 1 code>, mais pas qui ne sont pas incorporés dans un autre mot. Pour cela, vous auriez besoin de
+ * 1 * code>. P>
Bon sang vous avez résumé dans 10 lignes tout ce que j'ai besoin de savoir merci :), je vais l'accepter bientôt ..
Ne jamais utiliser% 1% Cela entraînera une numérisation de table complète et sera très inefficace si les données grandissent. P>
Fulltext est généralement plus rapide dans les jeux de données plus importants lors de la recherche dans les valeurs de chaîne. Comme les opérateurs sont utiles lorsque vous l'utilisez comme 'Text%' P>
-1 Désolé, mais vous devriez vérifier mieux ma réponse -1 J'utilisais simplement un exemple, plus j'ai déjà édité que
La solution la plus rapide consiste à créer une table correctement normalisée pour les balises, de sorte que chaque balise soit stockée sur une rangée distincte. Avantages: P>
comme code>. li>
Tableau CODE> utilise l'index de clé principale. LI>
Tableau code> utilise l'index de clé secondaire. LI>
Tableau code>. Li>
ATTENTION: Match contre ne fonctionnera pas avec moins de 4 caractères par défaut
Oui je sais qu'un exemple;)