Kom ihåg mig?

match() i mysql

Ämnesverktyg Visningsalternativ
Oläst 2005-02-27, 16:26 #1
thorsells avatar
thorsell thorsell är inte uppkopplad
Medlem
 
Reg.datum: Feb 2004
Inlägg: 295
thorsell thorsell är inte uppkopplad
Medlem
thorsells avatar
 
Reg.datum: Feb 2004
Inlägg: 295
Hej!

Undrar vad som kan var fel med följande (i mySQL-databas):

Har en tabell som ser ut så här:

Kod:
TABLE `annons` (
`headrub` smallint(4) NOT NULL default '0',
`cat` smallint(4) NOT NULL default '0',
`salebuy` smallint(4) NOT NULL default '0',
`notify` smallint(4) NOT NULL default '0',
`vip` smallint(4) NOT NULL default '0',
`time` int(15) NOT NULL default '0',
`header` varchar(200) NOT NULL default '',
`message` text NOT NULL,
`price` mediumint(9) NOT NULL default '0',
`email` varchar(250) NOT NULL default '',
`city` mediumint(4) NOT NULL default '0',
`name` varchar(250) NOT NULL default '',
`phone` varchar(20) NOT NULL default '',
`pass` varchar(50) NOT NULL default '',
`img1` varchar(100) NOT NULL default '',
`img2` varchar(100) NOT NULL default '',
`img3` varchar(100) NOT NULL default '',
`id` int(11) NOT NULL auto_increment,
UNIQUE KEY `idd` (`id`),
KEY `idex` (`headrub`,`cat`,`salebuy`,`header`,`city`,`price`),
FULLTEXT KEY `ftext` (`header`,`message`)
) TYPE=MyISAM PACK_KEYS=0;
Vill göra följande sökning:

Kod:
SELECT * FROM annons WHERE match (header,message) AGAINST ('cykel');
Följande rad finns i tabellen:

Kod:
INSERT INTO `annons` VALUES (1001, 27, 0, 0, 0, 1109448117, 'Grym cykel', 'Grym cykel, äkta mountainbike.. gillar du cykla är denna grym!', 10500, '[email protected]', 0, 'Namn Efternamn', '0701234567', 'test123', '', '', '', 1);
Borde få en träffa med andra ord med "cykel", fast får inga träffar alls.

Vill alltså att det ska fungera som mysql.com säger på den här sidan:
http://dev.mysql.com/doc/mysql/en/fulltext-search.html

ft_min_word_len är satt till 4 i mySQL, om det har något med saken att göra.

Hoppas att någon har några tips..?

mvh
Victor
thorsell är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-02-27, 16:38 #2
PeterM PeterM är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 56
PeterM PeterM är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 56
Vansinnigt förenklat: Du måste ha fler rader i tabellen. En sökning som returnerar alla rader i en tabell tolkar MySQL som dåligt och returnerar prompt ingenting.
PeterM är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-02-27, 16:49 #3
thorsells avatar
thorsell thorsell är inte uppkopplad
Medlem
 
Reg.datum: Feb 2004
Inlägg: 295
thorsell thorsell är inte uppkopplad
Medlem
thorsells avatar
 
Reg.datum: Feb 2004
Inlägg: 295
Citat:
Originally posted by PeterM@Feb 27 2005, 17:38
Vansinnigt förenklat: Du måste ha fler rader i tabellen. En sökning som returnerar alla rader i en tabell tolkar MySQL som dåligt och returnerar prompt ingenting.
Testade att lägga till 67 rader med samma innehåll, får fortfarande inget resultat tillbaka på min sökning..
thorsell är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-02-27, 19:52 #4
brokep brokep är inte uppkopplad
Medlem
 
Reg.datum: Feb 2005
Inlägg: 150
brokep brokep är inte uppkopplad
Medlem
 
Reg.datum: Feb 2005
Inlägg: 150
Skulle vilja få dig att inte använda full-text söket helst. Det är värdelöst och du kan ju inte köra InnoDB om du har fulltext-index.
Om du inte har så mycket trafik så rekommenderar jag hellre vanliga like-sök.
brokep är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-02-28, 00:27 #5
PeterM PeterM är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 56
PeterM PeterM är inte uppkopplad
Medlem
 
Reg.datum: Dec 2004
Inlägg: 56
Citat:
Originally posted by thorsell@Feb 27 2005, 17:49
Testade att lägga till 67 rader med samma innehåll, får fortfarande inget resultat tillbaka på min sökning.
Lägger du till samma rad en väldans massa gånger så kommer ju fortfarande alla rader att matcha, och MySQL sparkar bakut. Lägg till fler distinkta rader, eller använd AGAINST('söksträng' IN BOOLEAN MODE) som inte har den begränsningen.
PeterM är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-02-28, 08:28 #6
Standouts avatar
Standout Standout är inte uppkopplad
Flitig postare
 
Reg.datum: Feb 2004
Inlägg: 356
Standout Standout är inte uppkopplad
Flitig postare
Standouts avatar
 
Reg.datum: Feb 2004
Inlägg: 356
Citerat direkt ur manualen:
Citat:
The 50% threshold has a significant implication when you first try full-text searching to see how it works: If you create a table and insert only one or two rows of text into it, every word in the text occurs in at least 50% of the rows. As a result, no search returns any results. Be sure to insert at least three rows, and preferably many more.
Standout är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-02-28, 20:21 #7
thorsells avatar
thorsell thorsell är inte uppkopplad
Medlem
 
Reg.datum: Feb 2004
Inlägg: 295
thorsell thorsell är inte uppkopplad
Medlem
thorsells avatar
 
Reg.datum: Feb 2004
Inlägg: 295
Citat:
Ursprungligen postat av PeterM
Citat:
Ursprungligen postat av thorsell
Testade att lägga till 67 rader med samma innehåll, får fortfarande inget resultat tillbaka på min sökning.
Lägger du till samma rad en väldans massa gånger så kommer ju fortfarande alla rader att matcha, och MySQL sparkar bakut. Lägg till fler distinkta rader, eller använd AGAINST('söksträng' IN BOOLEAN MODE) som inte har den begränsningen.
Ah, lyckades räkna ut det också faktiskt med flera olika rader

tack för all hjälp iallafall, hade inte lyckats räkna ut det annars

mvh
victor
thorsell är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 
Ämnesverktyg
Visningsalternativ

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 23:29.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017