W jaki sposób obsłużyć literówki w wyszukiwarce?

0

Mam zrobić wyszukiwarkę, na stronie.

Jeśli chcę uwzględnić literówki, to jest jakaś inna możliwość niż rozbicie szukanej frazy na literki i między każdą wstawić "*"(Myśle o wyrażeniach regularnych oczywiście, ale jestem otwarta na każdą propozycję)?

2

Można zastosować Odległość Levenshteina do tego. Za literówkę uznajemy gdy odległość między szukaną frazą, a wyszukaną jest mała (mniejsza od 3 np.). Jeżeli twoja szukajka jendak robi zapytanie typu LIKE '%...%' to nie masz jak liczyć odległości.

1

To zależy jak i co chcesz szukać. Algorytmów na korekcje błędów i na wyszukiwanie jest dość sporo, ale musisz okreslić trochę wiecej szczegółów.

0

W sumie to nieważne co ;) Ale chodzi o książki, ta informacja jest redundantna. Muszę wyszukać i potem wyświetlić, pozycje z bazy danych. Czy wśród odpowiedniej tabeli jest komórka, bądź komórki które zawierają lub całe są danym słowem.

Może w sumie jednak lepiej na przykładzie...

Jak wpiszę Harry Potter w wyszukiwarkę, powinno mi wyrzucić wszystkie 7 tomów z Harrym Potterem. Jeśli wpiszę Harry to też inne pozycje zawierające to słowo. Brudny Harry czy jakoś tak, ale to chyba film... ale to akurat nieistotne dla nas czy to film czy książka. Chodzi nam o przykład. Jeśli wpisałabym Hary Pootter też chciałabym uzyskać wszystkie tomy Harrego Pottera.

Shalom Zacytowałabym Cię ale zostawiłam na uczelni myszkę i tak trochę nie najlepiej by się to zaznaczało ;). Mój pomysł wydawał mi się taki, dobra powiem wprost: Bardzo nie podobał mi się mój pomysł z wyrażeniami regularnymi i rozbijaniem na literki. Wydał mi się nie profesjonalny i ogólnie baaaaardzo słaby. Może to by i działało ale rozwiązanie było by na niskim poziomie. Ponadto nie wniosłoby to wiele do mojej wiedzy. Nie jestem zwolennikiem pisania kodu tak nie profesjonalne, tak aby tylko to działało.

Ps Ogólnie gdyby do tego dodać jeszcze podpowiedzi tak jak w google to by było bajecznie(satysfakcjonująco) ale już nie przesadzajmy: sesja idzie.

0

@lightinside Może po prostu użyj Haystacka? ;)

0

@lightinside ok jeśli mowimy tu o szukaniu po słowach i generalnie po krótkich rzeczach to odległość edycyjna może być ok. Ewentualnie możesz użyc gotowego search-engine jak Haystack.

1 użytkowników online, w tym zalogowanych: 0, gości: 1