sql >> Databasteknik >  >> RDS >> Mysql

MySQL 5.6 Full Text Search Problem när du söker efter ordet i PHP

Ok, jag har äntligen kommit på det här. Det ser ut som att jag redan har rensat myisam-stopporden men inte innodb. Det är lite men svårare att göra än för myisam men här är stegen för alla andra som kan behöva det:

I din /etc/my.cnf (eller my.ini på Windows) lägg till dessa rader:

Skapa en stoppordstabell. Jag gjorde min i en db som heter settings och en tabell som heter innodb-stopwords . Du kan inte bara ställa in innodb_ft_enable_stopword = 0 , måste du skapa och länka till en tabell.

Se till att din tabell är innodb och lägg till en kolumn som heter value , varchar(?), utf8_general_ci. Du kan lämna den tom eller lägga till värden i tabellen.

innodb_ft_enable_stopword = 1  
innodb_ft_server_stopword_table = settings/innodb-stopwords

Starta om din mysql-server.

Släpp och återskapa dina fulltextindex.

Om du inte vill starta om servern kan du dynamiskt ställa in variablerna med (uppdatera även cnf/ini-filen för nästa serveromstart)

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

Jag ser ingen lösning för att återskapa indexet... du kan dock göra det med ett kommando så att tabellen är låst hela tiden och dina användare inte får felmeddelanden:

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


  1. XCode, Authentication och NSUserDefaults

  2. Lagring av kundvagnsartiklar i cookies och databas

  3. Kan ett C#-program läsa en textfil i minnet och sedan skicka det objektet till en metod som kräver ett filnamn?

  4. Blob och lagringskrav