![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 278 Pomógł: 36 Dołączył: 9.04.2003 Skąd: Płock Ostrzeżenie: (0%) ![]() ![]() |
Witam
Zaczalem pisac zaawansowana wyszukiwarke do sklepu internetowego, napotkalem jednak nastepujacy problem: co zrobic jezeli uzytkownik w wyszukiwanej frazie zrobi literowke?? tzn. mam sklep internetowy i wyszukiwarke typu "wpisz slowo", skrypt przeszukuje baze danych i wyswietla znalezione rzeczy i teraz wszystko jest super jezeli wpisze np. laptop to znajduje laptop xxx, laptop xyz, abc laptop itp. ale co zrobic jezeli ktos omylkowo wpisze "laotop" - literowka przy szybkim pisaniu o blisko p? wyskakuje ze nic nie znaleziono - problem jest niby nikly gdyz latwo to wypatrzyc, ale co jezeli np. ktos szuka po nazwie firmy, ktora to tylko slyszal a nie potrafi jej dokladnie przeliterowac? zamiast coca-cola wpisze koka-kola?? poszukuje jakiegos rozwiazania, ktore mnie naprowadzi na wlasciwe rozwiazanie tego problemu, czy ktos sie juz z czyms takim spotkal? jak to zostalo rozwiazane? Znalazlem tylko cos w stylu takim:
...ale to kompletnie nie to o co mi chodzi (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) pozdrawiam |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 790 Pomógł: 7 Dołączył: 6.02.2003 Skąd: Polska Ostrzeżenie: (0%) ![]() ![]() |
Po 1. Poczytaj trochę o Lucene i jego implementacji w PHP (Zend_Search_Lucene). Całkiem niezłe rozwiązanie jeśli chodzi o trafność wynikow.
Po 2. Co do samego problemu, to jeśli masz do dyspozycji słownik to możesz napisać algorytm, który wykorzystuje np similar_text" title="Zobacz w manualu PHP" target="_manual. Poza tym możesz jeszcze poczytać o: http://pl.wikipedia.org/wiki/Odległość_Hamminga i http://pl.wikipedia.org/wiki/Odległość_Levenshteina |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 04:16 |