Kom ihåg mig?
Home Menu

Menu


boolean mode i MySQL och php

Ämnesverktyg Visningsalternativ
Oläst 2006-04-14, 14:03 #1
caipirinha caipirinha är inte uppkopplad
Medlem
 
Reg.datum: Jan 2005
Inlägg: 52
caipirinha caipirinha är inte uppkopplad
Medlem
 
Reg.datum: Jan 2005
Inlägg: 52
Påsk underhållning Närå, håller på och blir tokig när det ska fungera men inte gör
det, något jag glömt?

har i mysql en tabel med en varchar(128) "beskrivning", har tre rader där

1, "tv spel nintendo"
2, "tv spel sega"
3, "tv spel microsoft"

Vill kunna söka upp rader med och utan vissa ord, ska fungera med detta men icke

SELECT * FROM spel WHERE MATCH (beskrivning) AGAINST ('+spel -nintendo' IN BOOLEAN MODE);

Då borde jag ju få 2 & 3. Eller gör jag fel? kör mysql 4.1.12 och senaste php 5.
caipirinha är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-04-14, 14:07 #2
Joels avatar
Joel Joel är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Nov 2003
Inlägg: 790
Joel Joel är inte uppkopplad
Mycket flitig postare
Joels avatar
 
Reg.datum: Nov 2003
Inlägg: 790
Citat:
Select * from spel where beskrivning LIKE '%spel%' AND beskrivning NOT LIKE '%nintendo%';
Fast det kanske är segare än din funktion, men borde väl generera det resultat du vill ha?

/Joel
Joel är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-04-14, 14:17 #3
caipirinha caipirinha är inte uppkopplad
Medlem
 
Reg.datum: Jan 2005
Inlägg: 52
caipirinha caipirinha är inte uppkopplad
Medlem
 
Reg.datum: Jan 2005
Inlägg: 52
Det funkar bra Joel, fast jag tänkte vara lite lat och bara skicka min söksträng direkt in i mysql så
man låter mysql ta hand om + & - =). Har nu provat lite till och det verkar som om det jag
skrivit fungerar men inte om texten är får lång i mysql tabelen? är det något man måste ställa in?

Skriver jag detta så fungerade det, får alltså inte med raden med nintendo

SELECT * FROM spel WHERE MATCH (beskrivning) AGAINST ('+spel -nintendo' IN BOOLEAN MODE);

Men ändrar jag rad 1 till "tv spel bla bla bla tjoho expressen bla bla nintendo"

Då funkar det inte....
caipirinha är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-04-14, 15:05 #4
wiggin wiggin är inte uppkopplad
Medlem
 
Reg.datum: Jul 2005
Inlägg: 298
wiggin wiggin är inte uppkopplad
Medlem
 
Reg.datum: Jul 2005
Inlägg: 298
Free text search matchar inte mot alla ord. T.ex. tar den inte med korta ord(under 3 eller 4 tecken) samt om ett ord förekommer väldigt ofta. Det kan ju vara det som ställer till det om du använder så korta texter och lite data?
wiggin är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-04-14, 15:14 #5
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Hur ser mysql variablarna ut? ft_min_words och ft_max_words ?
Har du fulltext index inlagt på "beskrivning" ?

Standard för ft_min_word (minsta antal tecken som är sökbart) är 3.
Väljer du att ändra detta så måste du köra en repair på tabellen efteråt.
Jonas är inte uppkopplad   Svara med citatSvara med citat
Oläst 2006-04-14, 16:07 #6
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
Du har stött på en begränsning-per-design i MySQLs fulltext-sökning. Något förenklat så anses ett ord vara ett stoppord om det finns i minst 50% av tabellens rader. Lägg till fler rader som inte innehåller "spel" så ska du se att det fungerar som man kan förvänta sig.
PeterM ä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)
 

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 07:52.

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