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

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


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

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

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

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

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


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

vlad23
Юзер

vlad23 - 9 мая 2014 03:01 -

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

Lynat1k
Юзер

Lynat1k - 9 мая 2014 11:48 -

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

dj-avtosh
PHP-developer

dj-avtosh - 10 мая 2014 12:37 -

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

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

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

Lynat1k
Юзер

Lynat1k - 11 мая 2014 14:10 -

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

rocksmart
Юзер

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/

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

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

наверх