How to make a full text search engine with php and mysql? -


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