Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> wyszukiwanie fulltekstowe problem
jarmiar
post
Post #1





Grupa: Zarejestrowani
Postów: 616
Pomógł: 12
Dołączył: 16.07.2006
Skąd: : getCity ( );

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


  1. SELECT
  2. *,
  3. MATCH (name, name2, keywords) AGAINST ('%".$q."%') AS score,
  4. IF(premium=1, ( count_c_rec + count_cp_rec * $premium ), 0) AS entry_avg,
  5. IF(premium=1, (count_s_rec + count_c_rec + count_cp_rec ), 0) AS count_total
  6. FROM users
  7. WHERE MATCH (name, name2, keywords) AGAINST ('%".$q."%') AND active=1
  8. ORDER BY score DESC, entry_avg DESC


mimo, że w polu name znajduje się wyszukiwana przeze mnie fraza, mysql nie zwraca żadnego rekordu co tu może być źle? ewentualnie jak wy byście to zrobili?
Go to the top of the page
+Quote Post
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Jestes pewien, że masz frazę, która zawiera się między znakami %%?

W FULL TEXT SEARCH nie używa się %...
Go to the top of the page
+Quote Post
jarmiar
post
Post #3





Grupa: Zarejestrowani
Postów: 616
Pomógł: 12
Dołączył: 16.07.2006
Skąd: : getCity ( );

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


Cytat(nospor @ 10.06.2013, 16:16:39 ) *
Jestes pewien, że masz frazę, która zawiera się między znakami %%?

W FULL TEXT SEARCH nie używa się %...


jak usunę % to nadal nie zwraca mi rekordu...
Go to the top of the page
+Quote Post
nospor
post
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Pokaz kod po poprawkach. Tym razem pokaż go w całości z php, bo czort wie czy poprawnie składasz to zapytanie, a potem pokaż mi wynik
echo $sql;
Go to the top of the page
+Quote Post
jarmiar
post
Post #5





Grupa: Zarejestrowani
Postów: 616
Pomógł: 12
Dołączył: 16.07.2006
Skąd: : getCity ( );

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


  1. SELECT *, MATCH (name, name2, keywords) AGAINST ('%portal%') AS score,
  2. IF(premium=1, ( count_c_rec + count_cp_rec * 10 ), 0) AS entry_avg,
  3. IF(premium=1, (count_s_rec + count_c_rec + count_cp_rec ), 0) AS count_total
  4. FROM users
  5. WHERE MATCH (name, name2, keywords) AGAINST ('%portal%') AND active=1
  6. ORDER BY score DESC, entry_avg DESC LIMIT 10 offset 0



to jest wynikowe zapytanie

fraza "portal" znajduje się w tym przypadku w polu keywords, natomiast inna fraza, którą wpisywałem znajdowała się w polu name, ogólnie to wszystkie możliwości sprawdziłem
Go to the top of the page
+Quote Post
nospor
post
Post #6





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




(IMG:style_emoticons/default/facepalmxd.gif)
Przecież nadal masz %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%!
Go to the top of the page
+Quote Post
jarmiar
post
Post #7





Grupa: Zarejestrowani
Postów: 616
Pomógł: 12
Dołączył: 16.07.2006
Skąd: : getCity ( );

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


nom, ale jak pisałem wyżej, po usnięciu nadal nie pomaga (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
nospor
post
Post #8





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




(IMG:style_emoticons/default/facepalmxd.gif)
Jak mowie, że masz usunac, i pokazac kod wynikowy po usunięciu, to naprawdę tu nie ma żadnego haczyka z mojej strony :/


A index FULL TEXT na te pole w ogóle założyłeś?
Go to the top of the page
+Quote Post
jarmiar
post
Post #9





Grupa: Zarejestrowani
Postów: 616
Pomógł: 12
Dołączył: 16.07.2006
Skąd: : getCity ( );

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


oczywiście że tak

EDIT.

dodanie IN BOOLEAN MODE w AGAINST rozwiązało problem
szukana fraza stanowiła więcej niż 50% objętości całego pola (IMG:style_emoticons/default/smile.gif)

Ten post edytował jarmiar 10.06.2013, 15:35:29
Go to the top of the page
+Quote Post

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: 22.08.2025 - 22:20