It’s nice to be important but it’s more important to be nice
Verwijderd
Wat ik zou doen:
En dan php laten uitzoeken hoevaak [zoekwoordje] voortkomt in [veld waarin zoekwoordje moet staan]
Dit is al een behoorlijke hint. Ga nu maar eens zoeken, en in de manuals kijken!
Wat volgens mij ook kan is in je query al de woordjes tellen, maar volgens mij kan php dit via eregi veel vlugger . Zoeits als
Zoeits. Hoe precies weet ik even niet, maar het kan wel.
code:
1
| SELECT [hier alles wat je wilt pakken] WHERE [veld waarin zoekwoordje moet staan] LIKE '%[zoekwoordje]%' ORDER BY [waardie op moet ordenen] LIMIT [limiter] |
En dan php laten uitzoeken hoevaak [zoekwoordje] voortkomt in [veld waarin zoekwoordje moet staan]
Dit is al een behoorlijke hint. Ga nu maar eens zoeken, en in de manuals kijken!
Wat volgens mij ook kan is in je query al de woordjes tellen, maar volgens mij kan php dit via eregi veel vlugger . Zoeits als
PHP:
1
2
3
4
5
6
| <? while (resultaten ophalen) { $blaat = array (resultaten, count(eregi([zoekwoordje]resultaten))); } blaat sorteren op de counter. ?> |
Zoeits. Hoe precies weet ik even niet, maar het kan wel.
Het hangt er heel erg vanaf in welke orde van grootte je denkt. Als je gewoon een kleine site hebt, kun je best met LIKE gaan zoeken, maar erg efficient is het niet. Als je een wat grotere site hebt(en MySQL), zou je ook de Fulltext search mogelijkheden van MySQL kunnen gebruiken.
Voor een echt grote site zul je voorlopig zelf eigen woordindexes moeten maken, daar is de Fulltext index nog niet snel genoeg voor.
Voor een echt grote site zul je voorlopig zelf eigen woordindexes moeten maken, daar is de Fulltext index nog niet snel genoeg voor.
Uit volle borst op weg naar nergens / Zonder reden zonder doel
Met m'n zeden en m'n zonden / En mijn angstig voorgevoel
Laat mij mijn kont tegen de krib / Laat mij dit goddeloze lied
Hef jij je handen maar ten hemel / Maar red mij niet
Dat was ook een beetje mijn idee, maar aangezien je ook op meerdere woorden moet kunnen zoeken zullen er dus meerdere LIKES in de query kunnen voorkomen.Op dinsdag 25 december 2001 14:34 schreef daniel_hoenderdos het volgende:
Wat ik zou doen:
code:
1 SELECT [hier alles wat je wilt pakken] WHERE [veld waarin zoekwoordje moet staan] LIKE '%[zoekwoordje]%' ORDER BY [waardie op moet ordenen] LIMIT [limiter]
En dan php laten uitzoeken hoevaak [zoekwoordje] voortkomt in [veld waarin zoekwoordje moet staan]
Ja lijkt mij sneller dan alles in 1 query te doen. Anders wordt het een tamelijk ingewikkelde query.Wat volgens mij ook kan is in je query al de woordjes tellen, maar volgens mij kan php dit via eregi veel vlugger . Zoeits als
PHP:
1 2 3 4 5 6 <? while (resultaten ophalen) { $blaat = array (resultaten, count(eregi([zoekwoordje]resultaten))); } blaat sorteren op de counter. ?>
Zoeits. Hoe precies weet ik even niet, maar het kan wel.
Bedankt voor de suggesties het gaat overigens om een search voor een forum.
It’s nice to be important but it’s more important to be nice
Verwijderd
dan lijkt me de fulltext search van MySQL het beste. Volgens mij kom je al een behoorlijk eind als je dit tut eens goed doorneemt...
Deze draad schop ik even omhoog, want het leek me niet nodig om een nieuw topic hiervoor te maken.
Ik heb de FULLTEXT documentatie doorgenomen en ik denk het nu te snappen. Ik heb nu een tabel aangemaakt met 2 FULLTEXT indexen op de kolommen Topic en Message.
Echter indien ik de volgende query uitvoer:
Krijg ik van MySQL de volgende melding terug:
Can't find FULLTEXT index matching the column list
Ondanks dat Message wel een FULLTEXT kolom is
Ik heb de FULLTEXT documentatie doorgenomen en ik denk het nu te snappen. Ik heb nu een tabel aangemaakt met 2 FULLTEXT indexen op de kolommen Topic en Message.
Echter indien ik de volgende query uitvoer:
code:
1
| SELECT * FROM Forum WHERE MATCH (Message) AGAINST('hallo doei') |
Krijg ik van MySQL de volgende melding terug:
Can't find FULLTEXT index matching the column list
Ondanks dat Message wel een FULLTEXT kolom is
It’s nice to be important but it’s more important to be nice
Verwijderd
het zu ook handig zijn als je gewoon je webserver laat afsporen op de meta tags in de html files, dan kun je ook directory's etc afzonderen maar is er minder werk!
Volgens mij is deze reply bestemd voor een andere thread.
It’s nice to be important but it’s more important to be nice
Verwijderd
wat zijn de specificaties van je tabel (dus de soort kolommen). Je kunt trouwens beter niet met hoofdletters werken in tabel namen, bestandsnamen of string namen...
Dit is mijn code om de tabel aan te maken:
Echter als ik achteraf een index toevoeg op de tabel, dus:
ALTER TABLE forum ADD FULLTEXT(Topic,Message)
Dan werkt het wel.
Iets klopt er dus niet aan mijn CREATE TABLE query
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| CREATE TABLE forum ( ID mediumint UNSIGNED DEFAULT '0' NOT NULL auto_increment, UserID mediumint UNSIGNED DEFAULT '0' NOT NULL, UserIP varchar(15) NOT NULL, Topic varchar(50), TopicLocked tinyint UNSIGNED DEFAULT '0' NOT NULL, MsgIcon varchar(20), ReplyTo mediumint UNSIGNED DEFAULT '0' NOT NULL, DateTime bigint(20) UNSIGNED DEFAULT '0' NOT NULL, LastReply bigint(20) UNSIGNED DEFAULT '0' NOT NULL, LastEdit bigint(20) UNSIGNED DEFAULT '0' NOT NULL, Message text NOT NULL, FULLTEXT (Topic,Message), PRIMARY KEY (id), UNIQUE (id) ) |
Echter als ik achteraf een index toevoeg op de tabel, dus:
ALTER TABLE forum ADD FULLTEXT(Topic,Message)
Dan werkt het wel.
Iets klopt er dus niet aan mijn CREATE TABLE query
It’s nice to be important but it’s more important to be nice
Pagina: 1