J'essaie de faire une recherche de texte intégral sur MariaDB et j'ai rencontré un problème que je ne peux pas gérer.Recherche dans une sous-chaîne ou un mot dans MariaDB
ma table est générée comme;
CREATE TABLE test (email TEXT, FULLTEXT(email)) ENGINE=InnoDB;
puis d'insérer des données;
MariaDB [frauctive]> select * from test;
+---------------------------------+
| email |
+---------------------------------+
| [email protected] |
| [email protected] |
| [email protected] |
| [email protected] |
| [email protected] |
| [email protected] |
+---------------------------------+
lorsque j'utilise match contre la fonction, je ne peux pas récupérer le score de similarité que je veux obtenir;
MariaDB [frauctive]> SELECT email, MATCH(email) AGAINST('*david*' IN BOOLEAN MODE) AS relevance
-> FROM test ORDER BY relevance DESC;
+---------------------------------+--------------------+
| email | relevance |
+---------------------------------+--------------------+
| [email protected] | 0.0906190574169159 |
| [email protected] | 0.0906190574169159 |
| [email protected] | 0.0906190574169159 |
| [email protected] | 0 |
| [email protected] | 0 |
| [email protected] | 0 |
+---------------------------------+--------------------+
Altough "[email protected]" entrée contient modèle 'david', le score retourne 0.
Pouvez-vous s'il vous plaît me aider à résoudre ce problème pertinence?
L'indice de texte intégral ne fonctionne pas avec '* david *'. Vous devrez utiliser 'LIKE '% david%'' qui n'utilise pas l'index fulltext. – Adder
En fait, cela a fonctionné. J'ai essayé 'david', 'david *', '% david%' mais ils n'ont pas géré le résultat. –