Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyszukiwanie - temat wraca jak bumerang
Forum PHP.pl > Forum > Bazy danych > MySQL
eldad
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
uboottd
regexp
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.