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

Как сделать точный поиск по сайту?


     16.02.2015    Все вопросы » Общие вопросы    4077

вопрос
Всем добры день.
Как сделать чтобы поиск был с точным совпадением? Т.е Например Если я введу Ленина 16 - то он выдаст и Ленина 16 и Ленина 162 и Ленина 164 и т.д. Мне же нужно чтобы он делал точный запрос т.е - только Ленина 16.
Благодарю за любую помощь.

Ответил: Sander


Открыть файл engine/ajax/search.php
Найти:
$db->query("SELECT id, short_story, title, date, alt_name, category FROM " . PREFIX . "_post WHERE " . PREFIX . "_post.approve=1".$this_date." AND (short_story LIKE '%{$query}%' OR full_story LIKE '%{$query}%' OR xfields LIKE '%{$query}%' OR title LIKE '%{$query}%') ORDER by date DESC LIMIT 5");

Заменить на
$db->query("SELECT id, short_story, title, date, alt_name, category FROM " . PREFIX . "_post WHERE " . PREFIX . "_post.approve=1".$this_date." AND title = '{$query}' ORDER by date DESC LIMIT 5");

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

joydo
Юзер

joydo - 16 февраля 2015 15:45 -

Целсеофт ответил, что в поиске слова меньше 4-ых символов не участвуют, т.е
"А возможно ли сделать чтобы учитывались и 1-ые слова с точным запросом? Т.е Чтобы по Ленина 75 выводило только Ленина 75, а не все Ленина? "

Sander
PHP-developer

Sander - 16 февраля 2015 16:19 -

Быстрый поиск, полный или оба?

SanDev.pro - мой блог.

Telegram: @sandev
Skype: Sander8804

joydo
Юзер

joydo - 16 февраля 2015 16:30 -

Sander,
Только быстрый, полный поиск мне на сайте не нужен. Т.е я его убрал

joydo
Юзер

joydo - 16 февраля 2015 19:13 -

Sander,
Не помогло, все равно ищет все совпадение если ввести Ленина 1 ищет и Ленина 1-19, 110-119
Целесофт на форуме пишет что нужно
"В этом же файле ниже также переделывайте формирование поискового запроса, убирая символ % который ставится вместо пробелов. "
if ( !$all_word_seach ) $story = preg_replace( "#(\s+|__OR__)#i", '%', $story );

Пробовал по его предложению, тоже не получается
Пытался править эти строчки, тоже не дало результата
                    $titleonly_where = array ('0' => "short_story LIKE '%{story}%' OR full_story LIKE '%{story}%' OR xfields LIKE '%{story}%' OR title LIKE '%{story}%'", // Искать только в статьях

Sander
PHP-developer

Sander - 16 февраля 2015 19:31 -


Вы видимо путаетесь.
На скриншоте быстрый поиск.
А строка указанная вами находится только в полном.


$titleonly_where = array ('0' => "title = '{story}'", // Искать только в статьях

SanDev.pro - мой блог.

Telegram: @sandev
Skype: Sander8804

joydo
Юзер

joydo - 16 февраля 2015 19:36 -

Sander, Видать друг друга не так поняли. Я думал что быстрый поиск - это поиск на главной странице. А полный на странице поиска. Извиняюсь что так получилось. Ищу сейчас в search.php что делать. Надеюсь на вашу помощь, спасибо за ответы.

upiter
Юзер

upiter - 5 октября 2016 10:50 -

А как это сделать в расширенном поиске, чтобы искал точно, то что нужно, и не добавлял в результаты поиске публикации не имеющие отношение к заданной фразе поиска?

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

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

наверх