Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Bardziej zaawansowana wyszukiwarka, która wyszuka nie tylko wyrażenia, które wystepują koło siebie..
Forum PHP.pl > Forum > PHP
kukix
Witam.
W jaki sposób stworzyć wyszukiwarkę, która ma szersze dziąłanie niz poprostu wybieranie z bazy rekordu, w którym znajduje sie dany ciąg.


Obecnie wyszukiwarka moja wygląda na tej zasadzie:


  1. SELECT * FROM tabela WHERE tytul LIKE '%$zmienna%'


Interesuje mnie jednak coś takiego, że po wpisaniu stolik czarny czy stolik metalowy pojawiałyby się rekordy , które zawierają obydwa te wyrazyu, niekoniecznie będące obok siebie.
Jak zabrać się za coś takiego?


P.S. Coś podobnego jak jest w wyszukiwarce na tym forum, jednak bez konieczności wpiusywania znaków + przeed każdym wyrazem, gdyż było by to zbyt duże utrudnienie dla ludzi.


Prosze o podpowiedź.
Bede wdzieczny za wszelkie wypowiedzi.
dr_bonzo
http://www.sphinxsearch.com/
http://devzone.zend.com/node/view/id/91

nie musisz wszystkeigo od zera pisac, mozesz uzyc gotowcow
kukix
skrypty te są troszke za bardzo rozbudowane.. 750KB w spakowanym archiwum :/

jestem zwolennikiem troszke mniej rozbudowanych skryptów...

moze jest coś bardziej prostego?

Czy nie wystarczy rozbić funkcją explode() zmienną z formularza, rozbijając fraze na poszczegóne wyrazy i następnie zapytanie sql:

  1. SELECT * FROM tabela WHERE tytul LIKE '%$wyraz1%' AND LIKE '%$wyraz2%' AND LIKE '%$wyraz3%'



czynie wystarczy coś takiego?
Może jakieś inne pomysły?
akurczyk
A ja polecał bym napisac pełnotekstową wyszukiwarkę.
Taka wyszukiwarka mieści się w jednym zapytaniu i ma bardzo duże możliwości IMHO jak google.
Sprubuj tak:
  1. SELECT * FROM tabela WHERE MATCH(tytul,tresc) AGAINST('słowa kluczowe bez %' IN BOOLEAN MODE)

Jeśli ci się to spodoba to:
  1. SELECT * FROM tabela WHERE MATCH(tytul,tresc) AGAINST('słowa kluczowe bez %')

Ta metoda będzie działać troczę szybciej jednak wymaga utworzenia indexu.
Poszukaj w google pod hasłem wyszukiwarka pełnotekstowa mysql lub mysql fulltext search.
PS: Taka wyszukiwarka jest zastosowana na tym forum.
dr_bonzo
10 LIKEow w 1 zapytaniu z %% zajedzie ci baze od razu.
I co marudzisz ze szukarki maja po 1MB kodu, nie musisz go pisac, na hostingu na 10^1000% masz tyle miejsca a te szukarki sa szybkie i dzialaja i sa juz napisane.
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.