i have created php search engine using open source code. have created database , table 5 columns:
title, description, keywords, link, date
the code i'm using php code below:
<?php $keywords = $_get ['input']; $keywords = "led zeppelin"; $words = explode(" ",$keyword); foreach ($words $w) { $keyword_parts .= "+" . $w ." "; } $keyword_parts = substr($keyword_parts,0,-1); $query = "select *, match (keywords,title) against ('" . $keywords . "') score search match (keywords,title) against ('" . $keyword_parts . "' in boolean mode) order score desc"; //connect mysql_connect ("localhost", "root", "password"); mysql_select_db("intranet"); $query = mysql_query($query); $numrows = mysql_num_rows ($query); if($numrows >0){ while ($row = mysql_fetch_assoc($query)){ $id = $row ['id']; $title = $row ['title']; $description = $row ['description']; $keywords = $row ['keywords']; $link = $row ['link']; $date = $row ['date']; echo "<h2><a href='$link'>$title</a><h2/> $description <br /><br />"; } } else echo "no results found \"<b>$each</b>\" "; //disconnect mysql_close(); ?> the search script works fine, problem searches keyword increases search result, makes hard find want because lot of keywords on different entries match.
now, reading online full text search ("full-text searching performed using match() ... against syntax. match()") don't know how apply code.
this i've used in past. also, column you're doing match on must altered allow fulltext:
$keyword = "led zeppelin"; $words = explode(" ",$keyword); $keyword_parts = ''; foreach ($words $w) { $keyword_parts .= "+" . $w ." "; } $keyword_parts = substr($keyword_parts,0,-1); $query = "select *, match (column1,column2) against ('" . $keyword . "') score table match (column1,column2) against ('" . $keyword_parts . "' in boolean mode) order score desc";
Comments
Post a Comment