search in database, zelf maken of open source?

Status
Niet open voor verdere reacties.

fsasfsas

Gebruiker
Lid geworden
11 sep 2006
Berichten
429
Dag

Ik ben een data-driven website aan het op zetten en wil daar een search-vlak op maken. De content van de pagina's staat dus in een SQL database. Kan ik zo'n search het beste zelf implementeren of is dat dubbel werk want zijn er goede (open source?) alternatieven? ik kom wel een en ander tegen bij het surfen maar kan niet goed beoordelen of het wat is. Ook kwam ik er eentje tegen die bij nadere beschouwing met MySQL werkte en niet met MySQLi .
Vandaar mijn vraag: is er een gekende, veel gebruikte, up-to-date, search engine voor MySQL zonder reclame of kan ik er beter zelf eentje maken?

groetjes, Anjo
 
Ook kwam ik er eentje tegen die bij nadere beschouwing met MySQL werkte en niet met MySQLi .
Dan bouw je het toch om?
Het gaat alleen om de functie-bibiliotheek van PHP die connectie maakt met MySQL of MariaDB, en niet een compleet nieuwe database-type.
De vraag is wat je allemaal gaat opslaan, want misschien is MySQL/mariaDB zelfs niet toereikend en moet je iets met Lucene of Elastic doen, of iets dergelijks.
 
Laatst bewerkt:
Dan bouw je het toch om?

Het omzetten is het probleem niet maar het gebruik van MySQL en niet MySQLi in een van de voorbeelden die ik zag geeft voor mij aan dat het niet zo erg recent is... en ik kan sowieso niet beoordelen of het een of andere obscure toepassing is of niet. Omdat ik er niet in thuis ben, heb ik wellicht geen weet van een gekende die veel in gebruik is. Misschien is dat er wel, vandaar mijn vraag. Ik denk dat MySQL toereikend zal zijn. Het is niet veel content en niet veeleisend. Ik kan zelf wat in elkaar frotten via fulltext search maar waarom iets maken als blijkt dat er iets veel geschikters bestaat waar ik geen weet van heb?
 
Welk script is het dan?
 
Heb je al ervaring met FULLTEXT search?
 
Lijkt behoorlijk straightforward en goed zelf te doen. Heb niet het idee dat er gekende freesource voor nodig is of heb ik dat fout? Heb wel al testtabel met index voor fulltext search op kolom maar zoekprocedure nog niet geimplementeerd. Morgen weer een dag...

groetjes, Anjo
 
het kan er ongeveer zo uitzien (komt van een zelflerende zoekrobbot)
PHP:
    private function GET_Thermlist($startwith){
        $t = \DBConn::getTableNameFor('search_term'); 
        $sql='SELECT `id` AS \'key\' ,`term` AS \'value\' FROM `'.$t.'` WHERE `term` LIKE \''.$startwith.'%\' AND `CHECKED`=\'TRUE\' ' ;
        //print $sql;
        return parent::GET_Array($sql);
    }
het belangerijkste is :
.... WHERE `term` LIKE 'test%' AND `CHECKED`='TRUE'

je tabel kan er zo uit zien :
PHP:
$sql = 'CREATE TABLE IF NOT EXISTS `'.\DBConn::getTableNameFor('search_term').'`('.
                '`id` INT(20) NOT NULL AUTO_INCREMENT,'.
                '`locale` varchar(5) COLLATE '.\DBConn::getCOLLATE().' NOT NULL,'.
                '`term` varchar(230) COLLATE '.\DBConn::getCOLLATE().' NOT NULL,'.
                '`term_id` INT(20) DEFAULT 0,'.
                '`view_stars` INT(10) DEFAULT 0,'.
                '`search_stars` INT(10) DEFAULT 0,'.
                '`CHECKED` ENUM(\'TRUE\',\'FALSE\')NOT NULL DEFAULT \'FALSE\','.
                '`ENABLED` ENUM(\'TRUE\',\'FALSE\')NOT NULL DEFAULT \'FALSE\','.
                '`PUBLIC` ENUM(\'TRUE\',\'FALSE\')NOT NULL DEFAULT \'FALSE\','.
                '`lastscan` datetime DEFAULT NULL,'.
                '`stars` INT(10) DEFAULT 0,'.
                'PRIMARY KEY (`id`,`locale`)'.
            ')ENGINE = InnoDB DEFAULT CHARSET='.\DBConn::getCHARSET().' COLLATE='.\DBConn::getCOLLATE().' ;';
            $result1 = $database->query($sql);
            $return1 = $result1->rowCount()==1;
je ziet dat er al extra's op zitten.
nu je kan ook eens zoek in google op spiders webspiders of zoiets.(let op die heeft een cron nodig en zorgt voor overhead).overhead komt omdat hij elke pagina zal inlezen en opletten sommige zijn iets minder goed gebouwd en maken loops die in sommige gevallen onkontroleerbaar worden. max execute time kort houden indien je die lang hebt geplaatst
 
Dag

Ik ga vooralsnog voor de fulltext.... Sphider ben ik tegengekomen maar dat wordt al een hele poos niet meer bijgehouden. ik meen ook dat het nogal wat negatieve aandacht kreeg omdat het kwetsbaar was voor injectie.
voordeel van fulltext tov LIKE vind ik bv de sortering op relevantie.
heb het nog niet werkend overigens....

groetjes, Anjo
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan