Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Operacje na kolumnach z FULLTEXT
Forum PHP.pl > Forum > Bazy danych > MySQL
babejsza
Upraszczając problem polega na tym, że zapytanie:
  1. SELECT *
  2. FROM tabela WHERE MATCH (podtytul,tytul)
  3. AGAINST ("wyraz1 wyraz2")


kończy się komunikatem:
  1. Can't find FULLTEXT index matching the column list


Struktura bazy:

  1. CREATE TABLE `tabela` (
  2. `id` int(10) NOT NULL AUTO_INCREMENT,
  3. `tytul` varchar(255) NOT NULL,
  4. `podtytul` varchar(255) NOT NULL,
  5. `tresc` text NOT NULL,
  6. PRIMARY KEY (`id`),
  7. FULLTEXT KEY `tresc` (`tresc`),
  8. FULLTEXT KEY `podtytul` (`podtytul`),
  9. FULLTEXT KEY `tytul` (`tytul`)
  10. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=79 ;


No i nie wiem skąd ten problem. Oczywiście jeżeli w zapytaniu będzie tak:

  1. ...MATCH (tytul)...

  1. ...MATCH (podtytul)...

  1. ...MATCH (tresc)...


To wszystko gra, ale łączyć mi już kolumn nie chce.

Konsultowałem się z tym linkiem http://dev.mysql.com/doc/refman/5.0/en/fulltext-search.html ale niewiele to wniosło.

Przypuszczam, że przeoczyłem coś małego. Z góry dzięki za pomoc.
prond
Strzelam, ale wydaje mi się, że powinieneś utworzyć klucz składający się ze wszystkich 2 kolumn, których używasz w zapytaniu:
  1. FULLTEXT KEY `ft_search` (`podtytul`,`tresc`),
babejsza
Też tak myślałem (po konsultacji z dokumentacją), ale to nie to. Ciągle ten sam błąd.

//EDIT

A jednak. Okazało się, że w pośpiechu utworzyłem index dla dwóch kolumn, a w zapytaniu pytałem o nie przypisaną.

Dzięki za pomoc.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.