Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

FULLTEXT search
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> Cod PHP
Subiectul anterior :: Subiectul următor  
Autor Mesaj
dora



Data înscrierii: 22/Mai/2003
Mesaje: 38

Trimis: Joi Iul 10, 2003 2:20 pm    Titlul subiectului: FULLTEXT search  

Am o roblema la cautarea cu fulltext.
Am un tabel aro_at cu un camp plz care e text, FULLTEXT si totusi daca dau :

select * from aro_at where MATCH(plz) AGAINST('p1')

nu merge.

Ce e in AGAINST, adica in cazul meu p1, ar trebui sa caute daca e in vreo inregistrare din campul plz sau daca e vreo inregistrare din camp?
Oricum nu merge, am incercat ambele cazuri.Poate cineva sa-mi dea indicatii?
Mersi
Sus  
biban



Data înscrierii: 13/Apr/2003
Mesaje: 204
Locație: Giurgiu

Trimis: Dum Iul 13, 2003 7:20 pm    Titlul subiectului:  

Nu prea stapanesc MATCH...AGAINST, dar nu cumva e justificata folosirea ei numai daca la MATCH foloseshti mai multe coloane nu doar una??
Alta chestie: cica merge doar de la versiunea de mysql 3.23.23 in sus; ai o versiune superioara??
Spune-ne ce vrei sa faci shi poate are cineva o solutzie, poate nu ai nevoie decat de un LIKE in loc de MATCH...AGAINST
Sus  
dora



Data înscrierii: 22/Mai/2003
Mesaje: 38

Trimis: Lun Iul 14, 2003 7:59 am    Titlul subiectului:  

Am mysql 3.23.34. Cu like merge, voiam sa vad cum functioneaza match. E tare ciudat. Pe aceeasi tabela imi gaseste sau nu stringul dat.
Mersi.
Sus  
biban



Data înscrierii: 13/Apr/2003
Mesaje: 204
Locație: Giurgiu

Trimis: Lun Iul 14, 2003 11:19 am    Titlul subiectului:  

Shi mie mi se pare ciudat.
Am respectat toate conditziile din documentatie in ceea ce priveste indexarea coloanelor dar am observat ca daca am un shir "ana are mere" (de exemplu) shi folosesc clauza AGAINST ("mere") o totul ok; daca folosesc AGAINST ("ana") nu intoarce nimic.
Asha se intampla de fiecare data cand solicit primul cuvant din shir (cred ca asha se intampla shi in cazult tau, p1 era probabil cuvant unic, deci primul).

Poate este cineva care ne explica chestia asta.
Poate asha trebuie sa functioneze sau e un BUG.

Ashteptam un ajutor!!! - Nu am nevoie in proiectele mele de clauza MATCH...AGAINST dar e bine de shtiut pentru viitor.
Sus  
mikitu



Data înscrierii: 24/Feb/2003
Mesaje: 9
Locație: bucuresti

Trimis: Mar Iul 15, 2003 8:39 am    Titlul subiectului:  

incearca sa folosesti asta:
AGAINST ('+ana' IN BOOLEAN MODE);

pentru mai multe detalii:
http://www.mysql.com/doc/en/Fulltext_Search.html
Sus  
iugin



Data înscrierii: 22/Mai/2003
Mesaje: 82
Locație: Oradea

Trimis: Mar Iul 15, 2003 10:21 am    Titlul subiectului:  

Salut dora,


Problema ta cred ca e la tabela mysql

De exemplu daca ai cauta dupa title si description care sa spunem is varchar atunci ar trebui sa ai definit la crearea tabelei:

title varchar(255) default '',
description varchar(255) default '',
fulltext (title,description),

Daca nu pui fulltext nu merge

Salut si spor la munca
Sus  
biban



Data înscrierii: 13/Apr/2003
Mesaje: 204
Locație: Giurgiu

Trimis: Mar Iul 15, 2003 10:47 am    Titlul subiectului:  

Nu cred ca asta e problema.
M-am uitat mai bine pe documentatia MySQL shi am descoperit urmatoarele:
1. Sunt IGNORATE cuvintele cu mai putin de 3 caractere (inclusiv)
2. Deoarece MATCH...AGAINST calculeaza un scor, cu cat cuvantul apare in mai multe randuri(inregistrari) scorul este mai mic, astfel ca in cazul in care el se afla pe mai mult de jumatate din randuri scorul tinde la 0, deci este ignorat
3. Am testat cuvinte de 4 litere. Intr-o baza de date cu 12 inregistrari mi-a fost ignorat. Intr-o baza de date cu aprox. 48000 inregistrari a dat rezultate.
Ceea ce am scris mai inainte cu ignorarea primului cuvant cade, nu e bug, asha lucreaza.
In concluzie procedura nu e recomandata decat in cazul unor "motoare de cautare", sa zicem, cand faci o cautare shi afishezi rezultatele in ordinea scorului (calculat in functie de numarul de aparitzii in inregistrare shi altele).
Dezvoltatorii MYSQL atentzioneaza ca folosirea MATCH...AGAINST poate intoarce rezultate bizare.
Sus  
iugin



Data înscrierii: 22/Mai/2003
Mesaje: 82
Locație: Oradea

Trimis: Mar Iul 15, 2003 10:56 am    Titlul subiectului:  

Tot ce posibil dar sincer mie nu mia mers pana nu am pus in tabela din mysql fulltext. Imi dadea tot felul de erori, dupa aceea nimic. POate depinde si de versiunea de mysql, asta nu am mai facut, sa imi pun o gramada de versiuni ca ia timp ;)
Sus  
biban



Data înscrierii: 13/Apr/2003
Mesaje: 204
Locație: Giurgiu

Trimis: Mar Iul 15, 2003 11:05 am    Titlul subiectului:  

Bineinteles! Indexarea cu fulltext e neaparat necesara. Nici nu incape discutzie. Dar intr-un mesaj mai sus am spus ca deshi am respectat toate conditziile in ceea ce priveshte indexarea mi se parea suspicios.
Am citit mai bine shi am ajuns la concluzia de mai sus.
Referitor la folosirea AGAINST ('+ana' IN BOOLEAN MODE) daca imi amintesc bine e valabil de la versiunea Mysql 4 in sus. Nu mai shtiu bine dar parca asha spunea acolo.
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> Cod PHP
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community