| 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 |
|
| |