2012-05-15 2 views
1

В vendor_tbl Tabel я Есть много слов «Microsoft» Но когда я ОТТ «mecrsoft»Advance Поиск по ключевым словам в PHP MySQL

или что-то вроде этого он не возвращает меня как Micrsoft запись и SQL возвращения запросов 0 записей

как можно использовать интеллигенцию, чтобы сделать запрос, что это вернуть мне все записи, как мое ключевое слово

ниже я после SQL запроса в других

любой suggetion ОЗМ поможет сделать запрос Лучше

$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); 

ответ

0
  1. У вас есть пара данных терминов вероятности, как «mecrsoft» означает «Microsoft» или
  2. Вы можете реализовать Левенштейн алгоритм
+0

Как использовать Левенштейн в SQL Query Это выборка записи из Tabel поля – user1138383

+0

вы можете сказать мне как применить алгоритм расстояния levenshtein в sql-запросе? – user1138383

+0

@ user1138383 У Mysql нет levenshtein, но вы можете создать хранимую функцию для этого. Кроме того, я предлагаю вам иметь список правильных терминов ключевых слов. –

2

Я думаю, что это работа для поисковой системы с анализатор, который понимает неправильные слова. Например, ElasticSearch и нечеткие запросы:

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

Или вы можете использовать функцию Левенштейна в MySQL

Levenshtein: MySQL + PHP

+0

как Implemnet Levenshtein в sql-запросе? Becoz i test Функция Soundex Но что дает такой же Probelm – user1138383

+1

Я никогда к этому, извините. Но вы можете попробовать это: http://kristiannissen.wordpress.com/2010/07/08/mysql-levenshtein/ –