![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 372 Pomógł: 2 Dołączył: 10.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
witam,
chciałem u siebie zrobić wyszukiwanie FULLTEXT, jednak ku mojemu zaskoczeniu mój typ tabel InnoDB(konieczny jest taki typ ze względu na to że tabele zawierają więzy integralności) nie wspiera FULLTEXTU. I tutaj pytanie, czy nie da się tego obejść? Trochę to denerwujące, że dwa najlepsze typy tabel(InnoDB i MyISAM) wzajemnie się wykluczają. Ewentualnie, jaki inny mechanizm wyszukiwania można zastosować (poza bardzo wolnym LIKE)? Coś co nie będzie wymagało instalacji czegokolwiek na serwerze, bo i nie mam do niego dostępu. |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 855 Pomógł: 145 Dołączył: 17.07.2008 Skąd: High Memory Area Ostrzeżenie: (0%) ![]() ![]() |
Przenieś pola wyszukiwane FULLTEKSTEM do tabel MyISAM w relacji 1-1 do tabel InnoDB. Będziesz musiał pilnować niestety integralności
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 592 Pomógł: 445 Dołączył: 12.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Możesz mieć jedną tabelę w MyISAM tylko z wartościami do wyszukiwania, i ją połączyć z tą oryginalną (InnoDB) po ID.
Możesz też pisać skrypt zaawansowanego szukania. Tj. rozbijanie podanej frazy po znakach takich jak spacja , . + - etc, następnie konstruowanie z tego zapytania, że jeśli było +zwrot to będzie AND like, jeśli -fraza to NOT LIKE, itd. Tyle, że przy takim rozwiązaniu zapytanie będzie bardzo obszerne, i będzie dość mocno zamulało bazę. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 11:15 |