Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL] Wyszukiwanie pełnotekstowe - problem
matix
post 1.05.2008, 13:00:24
Post #1





Grupa: Zarejestrowani
Postów: 278
Pomógł: 10
Dołączył: 13.02.2007
Skąd: Rybnik

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


Witam.

Tworzę sobie pewien skrypt i napotkałem dość dziwny problem podczas tworzenia wyszukiwarki. Chcę do zrobić za pomocą pełnotekstowego wyszukiwania ze względu na wydajność, gdyż na stronie jest przewidywany ogromny ruch.

Zapytanie SQL:
  1. SELECT *, MATCH (file_title) AGAINST ('adobe') AS score FROM files;


Wynikiem tego w bazie danych jest wyszukiwanie rekordów mających w sobie napis "adobe", lecz z wynikiem (score) - 0.

Pytanie - dlaczego? Przecież powinien znaleźć te rekordy.


--------------------
Nawet, jeżeli nie jesteś zainteresowany usługami IT ani outsourcingiem, a Twoją pasją jest programowanie - zobacz naszą stronę. Piszemy dużo fajnych use-caseów, jak podchodzimy do tematu programowania dla naszych klientów. A tak na co dzień tworzymy budujemy mvp oraz tworzymy platformę b2b.
Go to the top of the page
+Quote Post
artega
post 1.05.2008, 13:11:10
Post #2





Grupa: Zarejestrowani
Postów: 174
Pomógł: 42
Dołączył: 22.07.2007
Skąd: /dev/random

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


Powinien jeżeli zastosujesz klauzule WHERE winksmiley.jpg
  1. SELECT *, MATCH (file_title) AGAINST ('adobe' IN BOOLEAN MODE) AS score FROM files WHERE MATCH (file_title) AGAINST ('adobe' IN BOOLEAN MODE)

Jeżeli słowo adobe jest bardzo popularne to zapytanie nic nie zwróci
Go to the top of the page
+Quote Post
matix
post 1.05.2008, 13:15:55
Post #3





Grupa: Zarejestrowani
Postów: 278
Pomógł: 10
Dołączył: 13.02.2007
Skąd: Rybnik

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


Wielkie dzięki winksmiley.jpg już śmiga;p


--------------------
Nawet, jeżeli nie jesteś zainteresowany usługami IT ani outsourcingiem, a Twoją pasją jest programowanie - zobacz naszą stronę. Piszemy dużo fajnych use-caseów, jak podchodzimy do tematu programowania dla naszych klientów. A tak na co dzień tworzymy budujemy mvp oraz tworzymy platformę b2b.
Go to the top of the page
+Quote Post
kicek_
post 4.01.2011, 20:25:49
Post #4





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 13.01.2008
Skąd: z nienacka

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


Cytat(artega @ 1.05.2008, 13:11:10 ) *
Powinien jeżeli zastosujesz klauzule WHERE winksmiley.jpg
  1. SELECT *, MATCH (file_title) AGAINST ('adobe' IN BOOLEAN MODE) AS score FROM files WHERE MATCH (file_title) AGAINST ('adobe' IN BOOLEAN MODE)

Jeżeli słowo adobe jest bardzo popularne to zapytanie nic nie zwróci


Mały komentarz ponieważ powyższa odpowiedź wprowadza w błąd, a trafiłem tutaj z pierwszej strony google. Nie ma konieczności wpisywania MATCH ... AGAINST w klauzuli WHERE. mechanizm MATCH ... AGAINST ma za zadanie określić wartość semantyczną zawartości wiersza do w porównaniu ze wzorcem. Jeżeli koledze nie zadziałało zapytanie dla słowa kluczowego 'adobe', to znaczy (jeżeli zostało zapisane w skrypcie prawidłowo), że słowo występuje w więcej niż 50% wierszy jakie są w tabeli. Takie małe ograniczenie ze strony silnika.


--------------------
http://unixslayer.pl
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 04:42