3 символа - нет результатов
Имеется движок ICMS версии 2.5.1.
Заведен контент, необходимые типы контента добавлены в настройках Компонента Поиск.
Имеется страница с описанием подготовки к ЕГЭ по английскому языку. По слову "ЕГЭ" поиск выдает: "Ничего не найдено", хотя страница кишит этим словом в тексте, а также имеется в заголовке страницы. Другие слова с этой же страницы, длина которых начинается от 4 символов и более — ищутся и эта же самая страница (которую по запросу "ЕГЭ" сайт не может найти) преспокойно отображается в результатах поиска.
Как заставить компонент Поиск в InstantCMS 2.5.1 производить поиск страниц по трехсимвольным запросам?
точно вопрос поднимался. Надо поменять настройки в базе данных какие-то. Поищите по сайту расширенным поиском яндекса фразу "Полнотекстовый индекс Fuze".Как заставить компонент Поиск в InstantCMS 2.5.1 производить поиск страниц по трехсимвольным запросам?
точно вопрос поднимался. Надо поменять настройки в базе данных какие-то. Поищите по сайту расширенным поиском яндекса фразу "Полнотекстовый индекс Fuze".Как заставить компонент Поиск в InstantCMS 2.5.1 производить поиск страниц по трехсимвольным запросам?
Это не то. Данные поля типа "Текст HTML" у меня уже включены опции "Участвовать в полнотекстовом поиске", типы контента добавлены в настройках компонента Поиск для поиска, но .....
— для поиска по 1-2 символам — выдается ошибка "Слишком короткие слова в запросе";
— для поиска по запросу длиной в 3 символа — ничего не находится нигде;
— для поиска по запросу длиной 4 и более символов — производится поиск, причем те страницы выдает, где и искомое слово ЕГЭ.
Для примера: на странице с искомым словом "ЕГЭ" присутствует слово "IELTS" (это такой экзамен). Если я задаю в поиске запрос "IELTS" — он мне находит эту страницу без проблем, т.е. по 5 символам ищет. Если я задаю запрос "IELT" (т.е. 4 символа) — сайт тоже находит эту же страницу. Если я сокращу запрос до 3 символов и запрошу "IEL" — пишет "Ничего не найдено". Ну, а если я попытаюсь искать по "IE" — выдает ошибку "Слишком короткие слова в запросе".
Проблема в том, что на сайте много наименований содержащих 3 символа в названии и сайт их не находит.
В компоненте контроллера поиска в файле /system/controllers/search/model.php есть проверка длины слов:
public function setQuery($query){ $this->original_query = $query; $stopwords = string_get_stopwords(cmsConfig::get('language')); foreach($words as $word){ } else { } $this->query[] = $this->db->escape($word) . '*'; } return true; }
Так кто подскажет решение?
Это такое минимальное значение полнотекстового поиска MySQL по умолчанию — четыре символа.система не ищет запросы длиной ровно в 3 символа
Вам нужен доступ к изменению системной переменной MySQL ft_min_word_len,
Вам нужен доступ к изменению системной переменной MySQL ft_min_word_len,
А если просто пририсовывать принудительно пробел к трёхбуквенному значению поиска?
$word = $word. ' ';}
-------------------------------------------------------
Увы, не прокатывает.
Впрочем попытка изменения ft_min_word_len тоже не слишком удачна...
--------------------------------------------------------------
Народ рекомендует преобразовывать все трехбуквенные слова в базу с дублированием, а при выводе — преобразовывать обратно:
xodos.ru/polnotekstoviy-poisk-mysql-po-3-simvolam/
Достаточно сделать, чтобы если поисковая фраза имеет ровно три символа, SQL запрос выполнять через LIKE '%{$query}%'. Сделаю коммит на досуге.
Спасибо, Fuze!
А я пока ради интереса отправил хостеру запрос может ли он изменить настройку серверной переменной для MySQL или нет.
Достаточно сделать, чтобы если поисковая фраза имеет ровно три символа, SQL запрос выполнять через LIKE '%{$query}%'. Сделаю коммит на досуге.
Здравствуйте! Удалась это как-то сделать, а то в 2.7.1 по трем буквам все равно не ищется.?
Поиск в Инстанте всегда был нечто из ряда… в общем очень сложно им пользоваться и выдача не корректная. Аякс бы поиск к нему…Здравствуйте! Удалась это как-то сделать, а то в 2.7.1 по трем буквам все равно не ищется.?
Вы считаете если прикрутить аякс все изменится? =)Аякс бы поиск к нему...
Как то пробовал Поиск от Дениса Васильевича. У него аякс и как то работает иначе. Главное, что очень быстрая выдача сразу во время набора. то позволяет быстро определиться с корректностью ввода и даже не делать ввод полностью, если получен нужный результат.Вы считаете если прикрутить аякс все изменится? =)
Что имеем сейчас!? Надо ввести выражение поиска, нажать на Ввод и потом долго рыться в результатах, которые выдаются без какой либо фильтрации. Не редки случаи, когда вообще ничего не находится, хотя точно известно, что такое слово есть. Не поиск, а сплошная проблема.
Да, с помощью аякс вам, как конечному пользователю, можно показать выпадающий список с какими либо строками, но формирование содержимого этого списка от аякс никак не зависит, от слова совсем. Более того, уверен что Денис Васильевич чего-то экстра неординарного в своем поиске не делал — я о том что выборка по БД происходит одинаково в обоих случаях. Хотя, признаюсь, я не видел дополнения о котором вы говорите, но предполагаю что поисковых движков оно не использует и систем ранжирования не применяет.