Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Sugerowanie
piernik
post
Post #1





Grupa: Zarejestrowani
Postów: 65
Pomógł: 0
Dołączył: 9.07.2004

Ostrzeżenie: (0%)
-----


potrzebuję stworzyć jakiś mechanizm wyszukiwania podobnych fraz
Mam bazę z powiedzmy 30 tys różnych fraz.
Wpisuję jakąś fraze w pole input np naprawa samochodów i system powinien wyszukać w tych frazach podobne frazy z tym że najbardziej podobne będą na samym początku czyli wynik mógłby wyglądać np tak:

samochodowa naprawa
naprawy samochodów
naprawa samochodowa
naprawa aut
remont samochodów
itd

Jak takie coś zrobić? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
na razie mam tak:
ucinam z frazy szukanej końcówki i dzielę na wyrazy i szukam w bazie 'słowo%'

Później przelatuję przez wszystkie wyniki i sortuję w php na takiej zasadzie:
dzielę frazę szukana i znalezioną na słowa i przelatuję przez wszystkie kombinacje levensteinem - wyniki sumuję i fraza z najniższym wynikiem levensteina trafia na początek.

Nie sprawdza się to przy powyżej 3 wyrazach.
Jak usprawnić takie sortowanie?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
guitarnet.pl
post
Post #2





Grupa: Zarejestrowani
Postów: 74
Pomógł: 4
Dołączył: 7.03.2008

Ostrzeżenie: (0%)
-----


po pierwsze 30 tys wpisow i takie sugestie to nie jest dobry pomysl... szczerze mowiac fatalny, wyobrazcie sobie obciazenie serwera mysql takimi zapytaniami

co ja zrobilem to cachowanie w sesji wpisanego wzoru szukania czyli jak ktos wpisze w jednej sesji jakis wyraz zostanie on zapamietany i przywolany przy powtorzneiu, dodatkowo wyniki wyszukiwania i wpisany wzor zapamietywane sa w osobnej tabeli ktora jest przeszukiwana w pierwszej kolejnosci

oczywiscie nalezy oszacowac czy taka tabela ma sens pod katem wystepowania powtorzen, w moim przypadku mam duzo wiec ma sens wysylac dodatkowe szybkie zapytania zamiast szukac w duzej bazie

spotkalem sie rowniez z rozwiazaniem opartym na dodatkowej specjalnie generowanej tabeli z indeksami z 2 polami keyword-wyniki ktora jest przeszukiwana zamiast prawidlowej z 30tys , taka skrotowa tabela
nalezaloby oczywiscie sprawdzic czy i jesli wystepuje oszczednosc operacji i czasu odwolania, w tej tabeli odswizanej np co 24 godz znajduja sie, nigdy nie mialem czasu tego wdrozyc ale na oko widac ze w moim systemie to lepsze i szybsze rozwiazanie niz cache na sesjach i podwojne sprawdzanie cachu
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 6.10.2025 - 15:07