![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
Myślę, że to dość powtarzający się problem i pewnie ma ktoś już jakieś doświadczenie.
Chodzi o wyszukiwarkę. Pomińmy może rozwiązania wymagające instalacji oprogramowania na serwerze czyli co MySQL daje w standardzie. Prosto z mostu - co najlepiej użyć? Mamy dwie kolumny imię i nazwisko. - CONCAT + LIKE %% - AGAINST - AGAINST BOOLEAN - LEVENSTEIN ? Pierwsze ok, w miarę działa ale nie posortuje wg trafności. Z resztą nie mam doświadczenia dlatego pisze ten temat. Czy w AGAINST (BOOLEAN) można dać większy priorytet dla danej kolumny np. nazwiska? Np. Jeżeli ktoś się nazywa Jan Adam to chciałbym aby po wpisaniu "Adam" wyszukiwał najpierw osoby o nazwisku Adam, potem dopiero poszukał Adamów. Ogólnie nazwisko powinno mieć większy priorytet. Potem fajnie by było dodawać dodatkowe punkty za dodatkowe wartości np. jeżeli wyszukana osoba jest z tej samej miejscowości. Czy tu da radę to zrobić na poziomie zapytania czy już wyniki uzupełniać w PHP? Ten post edytował markonix 5.12.2012, 17:42:53 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 707 Pomógł: 290 Dołączył: 16.12.2008 Skąd: Śląsk Ostrzeżenie: (0%) ![]() ![]() |
LEVENSTEIN ogólnie bym sobie darował żeby nie komplikować sprawy. Ktoś zrobi literówkę to już niech się martwi.
Przy uzupełnianiu dodam podpowiedzi przyjmując, że wpisywany ciąg to nazwisko, a następnie dopiero imię. Co do miejscowości -> Szukasz Jan Kowalski. W bazie masz ich trzech, ale dwaj mieszkają nad morzem, a drugi obok Ciebie i jest z Twojej szkoły. Wtedy jak myślisz o którego Ci chodziło? (IMG:style_emoticons/default/smile.gif) Oczywiście to tylko przykłady "punktowania". Słowo punktowanie wziąłem po prostu z aliasu "score", który zazwyczaj jest używany przy AGAINST. http://stackoverflow.com/questions/6259647...-column#6305108 Tutaj znalazłem fajne rozwiązanie, wymaga jedynie nałożenia dwóch indeksów (przynajmniej w moim przypadku). Te rozwiązanie (sumowanie ratingów) podsunęło mi też od razu pomysł na dodanie punktów za jakieś tam cechy (za pomocą CASE). |
|
|
![]() ![]() |
![]() |
Aktualny czas: 11.10.2025 - 21:39 |