8
votes

Match MySQL ne fonctionne pas avec deux personnages?

J'ai une table appelée «entreprise» avec les données d'échantillonnage suivantes: xxx

lorsque j'exécute une requête comme xxx

Quel est le problème avec la dernière requête?

Des idées?


2 commentaires

Bien que je ne sois pas sûr pourquoi vous avez un problème, je ne suggérerais pas qu'un environnement de production utilise ce type de requête si votre table pourrait devenir grande.


pourquoi donc? Comment suggéreriez-vous que je fais cela? J'ai besoin de faire correspondre si les utilisateurs recherchent '150 N Michigan' ou 'Michigan N 150 Il', etc. Fondamentalement un peu comme une recherche Google: p


4 Réponses :


1
votes

On dirait que vous rencontrez dans la limite de longueur minimale, comme indiqué dans le MYSQL DOCS .


4 commentaires

Ya comme je soupçonnais :( alors quelle est la solution?


Je ne suis pas de gourou mysql - mais je m'attendrais à ce que cette limite puisse être modifiée quelque part - Vérifiez via les paramètres du serveur / de la base de données / de la table.


Oui aurez-vous raison. dev.mysql.com/doc/refman/5.0/ EN / FULLTEXT-FINE-TUNING.HTML Mais ce sera un problème dans un environnement d'hébergement partagé où je n'aurai pas accès aux fichiers de configuration. :( Dang!


N'a pas l'air bien - le temps de changer vos états aux noms complets. :)



6
votes

Mettez à jour le ft_min_word_len variable dans le fichier de configuration mysql: xxx

Notez que la suite des index doit être reconstruite. < / p>


2 commentaires

Je ne trouve pas ft_min_word_len dans le fichier my.cnf , pourquoi? (il convient de noter que j'utilise XAMPP)


Vous devez l'ajouter.



3
votes

Recherche du Fulltext arrêter un mot commun, mais il est désactivé à l'aide de cette étape.

1: Ouvrez mon fichier My.ini dans le fichier de configuration MySQL.

2: placer ft_min_word_len = 1 ligne après [mysqld ] ligne dans mon.ini xxx

3: redémarrez votre serveur

4: Réparez votre table en utilisant la commande ci-dessous

Nom de table de réparation;

5: Votre recherche fonctionne ....


0 commentaires

0
votes

Pour les futures références. Les réponses ci-dessus sont liées à MyISAM CODE> MOISAM NON INNODB code>).

Ainsi, pour fixer la longueur minimale des mots pour innoDB code> vous avez besoin INNODB_FT_MIN_Toke_Size (valeur par défaut: 3)



:

show table status where `name` = 'table_name';
l 'a reconstruit l'index ( SOURCE ): P>
alter table your_name drop index index_name;
alter table your_name add fulltext(field_name);


0 commentaires