php - Ei löydä FULLTEXT-hakemistoa, joka vastaa sarakeluetteloa (hakemistot on asetettu)

Translate

Työskentelen kokotekstin kanssa, suoritin komennon lisätä kokotekstihakemisto useisiin kommentteihin, enkä palauttanut virheitä.

SELECT * FROM products WHERE MATCH(`brand`) AGAINST('Skoda');

Mikä on tuotesarakkeessa - mutta saan seuraavat:

Sarakeluetteloa vastaavaa FULLTEXT-hakemistoa ei löydy

Eventho, kun pöytäni näyttää tältä:

FULLTEXT KEY `name` (`name`,`breadcrumb`,`description`,`brand`,`price`,`year`,`km`,`usage`,`type`)

Onko se siksi, että minun pitäisi käyttäänamesen sijaan? tehdä haku? Tai mikä voi olla väärin.

This question and all comments follow the "Attribution Required."

Kaikki vastaukset

Translate

Olettaen, että käytät MyISAM-moottoria, Suorita:

ALTER TABLE products ADD FULLTEXT(brand);

Koko tekstihakemiston tulisi sisältää täsmälleen sama määrä sarakkeita samassa järjestyksessä kuin MATCH-lausekkeessa mainitaan.

Lähde
Translate

Kun kaikki oli oikein ja sain vielä tämän virheen, huomasin, ettäKEYSolivat vammaisia. Yksinkertainen virhe, jota joskus ei oteta huomioon:

Varmista, että olet ottanut näppäimet käyttöön taulukossa.

Se ei toiminut minulle, kun olin poistanut avaimet käytöstä. Mutta kun otin näppäimet käyttöönALTER TABLE table name ENABLE KEYS;se toimi hyvin

Lähde
Translate

Jos et halua sarakkeiden olevan samassa järjestyksessä kuin ottelulauseke (tai sama numero), voit aina käyttää TAI-sanaa, joka on:

ALTER TABLE products ADD FULLTEXT(brand);
ALTER TABLE products ADD FULLTEXT(product_name);

 SELECT * FROM products WHERE MATCH(brand) AGAINST('+Skoda*' IN BOOLEAN MODE) OR MATCH(product_name) AGAINST('+productName*' IN BOOLEAN MODE)
Lähde
Translate

Huomasin, että minun oli tehtävä tämä myös instanssissani, koska hakemisto ei ollut näkyvissä. Se oli valintaruutu tutkittaessa MySQL Workbenchiä. Näkymätön hakemisto ei ole tavoitettavissa kyselyllä.

ALTER TABLE products ALTER INDEX brand VISIBLE;
Lähde
Translate

Varmista, että pöytämoottorin asetuksena on MyISAM.

Lähde
Kirjailijasta