Технический сбой

Сайт временно работает в режиме только для чтения, идут восстановительные работы. Приносим свои извинения за неудобства.
DLE FAQ » Все вопросы » Общие вопросы по PHP » Как научить поиск игнорировать ошибки?

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


     поиск по сайту    Все вопросы » Общие вопросы по PHP    2618

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

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

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

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


5 комментариев

vlad23
Юзер

vlad23 - -

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

Lynat1k
Юзер

Lynat1k - -

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

dj-avtosh
PHP-developer

dj-avtosh - -

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

По заказам пишем сюда: @Rud00y

ЯД: 41001679231462
Заказы в telegram (ремонт модулей, оптимизация нагрузок и т.п.):
В телегу писать сразу задачу и бюджет.

Lynat1k
Юзер

Lynat1k - -

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

rocksmart
Юзер

rocksmart - -

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

$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/

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

наверх