1

在 vendor_tbl 表中,我有很多词“Microsoft”但是当我输入关键字“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);
4

2 回答 2

2

我认为它适用于具有理解错误单词的分析器的搜索引擎。例如,ElasticSearch 和模糊查询:

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

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

Levenshtein:MySQL + PHP

于 2012-05-15T15:25:03.990 回答
0
  1. 您有概率术语的数据对,例如“mecrsoft”的意思是“微软”或
  2. 您可以实现 levenshtein 距离算法
于 2012-05-15T15:24:28.997 回答