sql >> Database >  >> RDS >> Mysql

MySQL 5.6 Full Text Search Probleem bij het zoeken naar het woord the in PHP

Ok, ik ben er eindelijk achter. Het lijkt erop dat ik de myisam-stopwoorden al had gewist, maar niet de innodb-woorden. Het is een beetje maar moeilijker om te doen dan voor myisam, maar hier zijn de stappen voor iedereen die het misschien nodig heeft:

Voeg in uw /etc/my.cnf (of my.ini in windows) deze regels toe:

Maak een tabel met stopwoorden. Ik heb de mijne gemaakt in een db genaamd settings en een tabel genaamd innodb-stopwords . Je kunt niet zomaar innodb_ft_enable_stopword = 0 , je moet een tabel maken en ernaar linken.

Zorg ervoor dat je tabel innodb is en voeg een kolom toe met de naam value , varchar(?), utf8_general_ci. U kunt het leeg laten of waarden aan de tabel toevoegen.

innodb_ft_enable_stopword = 1  
innodb_ft_server_stopword_table = settings/innodb-stopwords

Start uw mysql-server opnieuw op.

Zet uw fulltext-indexen neer en maak ze opnieuw.

Als u de server niet opnieuw wilt opstarten, kunt u de variabelen dynamisch instellen met (update ook het cnf/ini-bestand voor de volgende herstart van de server)

--innodb_ft_enable_stopword=1
--innodb_ft_server_stopword_table=db_name/table_name

Ik zie geen oplossing om de index opnieuw te maken... je kunt het echter in één opdracht doen, zodat de tabel de hele tijd vergrendeld is en je gebruikers geen fouten krijgen:

ALTER TABLE `tablename` DROP INDEX indexname, ADD FULLTEXT(`columnname`);


  1. Hoe kunnen we de naam van de database in MySQL 5.0 hernoemen?

  2. Als u het MS Access-team een ​​vraag zou kunnen stellen, wat zou dat dan zijn?

  3. De functie lower() voor internationale tekens in postgresql

  4. Hoe de dbms_output-buffer te vergroten?