W związku z rozrastaniem się kontentu, który mam w bazie stanęło przede mną zagadnienie rozbudowania wyszukiwarki.
Nie wystarcza mi proste szukanie w stylu
[sql:1:e71e527c64]select * from artykuly where tresc like '%costam%'[/sql:1:e71e527c64]
bo:
- warunek like '%arka%' wyszuka arka, ale i "nagrywarka", "gitarka", jeśli zrobię '% arka %' - znajdzie "arka" ale nie znajdzie "arka,"
- treść mam w kilku polach (tytuł, składniki, opis itd.) - strasznie rozbudowuje to zapytanie
http://www.mysql.com/doc/en/Fulltext_Search.html
To rozwiązanie niewiele wnosi, bo np.:
- aby dodać własne stopwords (słowa wyłączone z wyszukiwania) trzeba przekompilować mysql-a (btw, robił to ktoś dla języka polskiego?)
- jeśli szukane słowo jest w więcej niż 50% wynikach baza nie zwraca nic (i nie wiadomo czy nie znalazła nic czy właśnie wyników było za dużo)
A zatem wobec powyższego jedynym rozwiązaniem jest stworzenie wyszukiwarki z oddzielnym indeksem słów. Ale o tym następnym razem.
Może ktoś ma uwagi do tego co napisałem powyżej?
eldad