在php mysql中提前关键字搜索

时间:2012-05-15 15:16:51

标签: php mysql sql

在vendor_tbl Tabel中我有很多单词“Microsoft”但是当我输入Keyword'mecrsoft'时

或类似的东西它不会像micrsoft记录和sql查询返回0记录那样返回我

如何使用智能来进行查询它会返回所有记录,例如我的关键字

下面我在其他

中发布sql查询

任何建议都有助于使查询更好

$keyword='mecrsoft';
$mykeyword= explode(" ",$keyword);
for($i=0;$i<count($mykeyword);$i++)
   $keywords_v[]="vendor_name like '%".$mykeyword[$i]."%' or page_description
   like '%".$mykeyword[$i]."%' or  keyword like '%".$mykeyword[$i]."%' or
   page_title like  '%".$mykeyword[$i]."%' or page_description like
   '%".$mykeyword[$i]."%' ";

$q="select vendor_name,slug,page_description,keyword,
   page_title,page_body from vendor_tbl 

where (".implode(',',$keywords_v).")";

$rs=mysql_query($q);

2 个答案:

答案 0 :(得分:2)

我认为对于拥有分析器的搜索引擎来说,它可以理解错误的单词。例如,ElasticSearch和Fuzzy查询:

http://www.elasticsearch.org/guide/reference/query-dsl/fuzzy-query.html

或者你可以在MySQL中使用levenshtein函数

Levenshtein: MySQL + PHP

答案 1 :(得分:0)

  1. 您有一些概率术语的数据对,例如'mecrsoft',意思是'microsoft'或
  2. 您可以实施levenshtein距离算法