Chys
10.06.2008, 19:48:10
Chciałbym napisać wyszukiwarkę internetową ale napotkałem na problem literówek, które zdarzają się dosyć często, a nie wiem jak sobie z tym poradzić, mianowicie ktoś wyszukuje wyraz "samohód" zapominając o literze "c". Oczywiście normalne porównanie nie zwróciłoby żadnych wyników, ale chciałbym żeby moja wyszukiwarka była w miarę "inteligentna" i poradziła sobie z takimi prostymi literówkami.
Za wszelkie sugestie i pomysły z góry dziękuję.
.radex
10.06.2008, 19:52:50
jedyne co mi przychodzi na myśl to utworzenie osobnej tabeli gdzie będziesz zapisywał częste literówki i słowa, które do nich pasują.
Do tego: przydatne informacje możesz znaleść w tym temacie ->
http://forum.php.pl/index.php?showtopic=38307
cojack
10.06.2008, 20:27:10
Używasz LIKE:
<?php
$zapytanie = "SELECT * FROM nazwa_tabeli WHERE ".$metoda_szukania." LIKE '%".$wyrazenie."%'";
?>
teutates
10.06.2008, 20:40:31
No dobra ale takie zapytanie nie wyszuka tylko rekordy w ktorych zawarty jest dany wyraz a nie wg literowki, raczej nie ma jednoznacznego rozwiazania w takich sytuacjach. Mozesz polegac na uzytkownikach u wpisywac wyraz bledny oraz podany przez usera poprawny do tabel i statysycznie okreslac poprawnosc, jest to jednak nie ciekawe na poczatku poniewaz system musi sie "nauczyc" bledow, a do tego liczyc na poprawnosc wpisow. Jednym z ciekawszych rozwiazan jest podobny system ale wypelniajacy formularz a;la google suggest wiec najczesciej wpisywany wyraz bedzie automatycznie dokonczony. To wszystko jednak opiera sie na statystycznym userze, u ktorego ciezko okreslic czy nie jest aby wtornym analfabeta:)
Pozdrawiam
cojack
10.06.2008, 21:10:32
W moim przypadku LIKE gdy wpiszesz: a
To znajdzie Ci wszystkie rekordy z danej tabeli gdzie masz w nich literę a itd itp. Więc to wyszukiwanie jest wg mnie dobre, zresztą przykład jest stricte z podręcznika.
pyro
10.06.2008, 21:32:15
Cytat(cojack @ 10.06.2008, 22:10:32 )

W moim przypadku LIKE gdy wpiszesz: a
To znajdzie Ci wszystkie rekordy z danej tabeli gdzie masz w nich literę a itd itp. Więc to wyszukiwanie jest wg mnie dobre, zresztą przykład jest stricte z podręcznika.
tak... ale na kija to sie zda, gdy będzie przypadek jak napisał kolega wyżej, że zamiast samochód ktoś wpisze samohód
teutates
10.06.2008, 21:46:59
Jak uzywasz like na kolumnie bez indeksu, a like nie uzywa indeksu bo niby jak, na sporek tabeli wyrazow... chcialbym widziec ten serwer ktory t o w akceptowalnym czsie obsluzy:) Zdaj sie nauserow, jak dwoch wpisze samochod a jeden samohod to pokaze ci sie samochod:)
Pozdrawiam
Chys
10.06.2008, 22:12:52
No właśnie, używanie like jest podobno niezbyt szybkie...
Też tak właśnie myślałem, żeby zrobić coś na wzór google suggest, ale pomysł z tabelą z błędnymi oraz poprawnymi wyrażeniami też wydaje się dobry.
Dzięki wszystkim za pomysły
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.