Не нравятся результаты поиска? Попробуйте другой поиск!
dle-faq.ru FAQ (все вопросы) Общие вопросы по PHP Как научить поиск игнорировать ошибки?

Как научить поиск игнорировать ошибки?


     09.05.2014    Общие вопросы по PHP    1227

вопрос
Скажите пожалуйста, как можно настроить поиск так чтобы он мог игнорировать ошибки и выводить нужный материал

например юзер введя слово "ВинИгрет" увидит материал с названием "ВинЕгрет"
то есть чтобы поиск мог игнорировать 1-2 неправильно введенные буквы в слове или фразе

или допустим если юзер ввел фразу без двоеточия, когда статья на сайте с двоеточием ну или тире..
например он ввел "человек паук" а статья называется "человек-паук" то есть уже результатов поиска не выдаст

Ответа пока нет


Комментарии пользователей (5)

vlad23
113 | 20

vlad23 - 9 мая 2014 03:01 - Юзер

Мне кажется тут нужна база слов, нужно её поискать в каких либо программках, например miranda pilot там есть модуль правописание, ну или откуда либо выдернуть. Далее заменять слово с ошибкой на без ошибки, хотя это неправильно, лучше предлагать вариант .

Lynat1k
1

373 | 93

Lynat1k - 9 мая 2014 11:48 - Юзер

да зачем база слов..просто как то настроить поиск чтобы он находил слова с совпадением допустим 6 из 7 букв в слове и выдавал результат

dj-avtosh
39

1479 | 390

dj-avtosh - 10 мая 2014 12:37 - шашлычник

Заменять буквы а в запросе делать OR

skype: elhan.isaev

Lynat1k
1

373 | 93

Lynat1k - 11 мая 2014 14:10 - Юзер

А есть ли реализация такого хака?

rocksmart
64

307 | 115

rocksmart - 11 мая 2014 15:58 - Юзер

Как вариант проверять через сервис яндекса

$word = 'Паисковая фраза'

$checker=json_decode(file_get_contents("http://speller.yandex.net/services/spellservice.json/checkText?text=".urlencode($word)."&ie=1251"),true);
$checked_str = $word;
foreach($checker as $w) {
$checked_str  = str_replace(iconv('UTF-8','windows-1251',$w['word']),iconv('UTF-8','windows-1251',$w['s'][0]),$checked_str);
}
if($checked_str!= $word && !empty($checked_str)) {
echo "Возможно вы имели ввиду: <a href=\"index.php?name=news&q=".urlencode($checked_str)."\">$checked_str</a>";
}


Пример работы http://pro-script.ru/

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы