В стандартном компоненте для поиска по сайту в 1С-Битрикс есть полезный функционал автоматического переключения раскладки клавиатуры, но как же его отключить.
Если вы хотите, чтобы система искала по запросу DJI, а не ВОШ, то для этого в параметрах стандартного компонента bitrix:catalog.search надо добавить строку:
Нам будет приятно
Еще интересное в блоге
Работа с параметрами ссылки
Как сделать название раздела инфоблока заголовком страницы
Будем рады работать именно с вами
Политика конфиденциальности персональных данных
- Общие положения.
- Настоящая Политика конфиденциальности персональных данных (далее — Политика) действует в отношении всех персональных данных, которую компания Keengo (далее – Компания), может получить от пользователя (лица, заполнившего форму обратной связи, использующего другие сервисы официального сайта keengo.ru (далее – Сайт)), в частности в ходе: отправки отзывов или вопросов, заказа услуг, участия в рекламных и/или маркетинговых кампаниях или акциях и/или ином взаимодействии (далее – Услуги).
- Заполняя форму обратной связи и нажимая кнопку «Согласен/на», расположенную на странице Сайта, на которой размещена форма обратной связи, а равно указывая свои персональные данные при использовании других сервисов Сайта, пользователь выражает согласие с настоящей Политикой и указанными в ней условиями обработки и передачи его персональных данных. Согласие Пользователя на предоставление, обработку и передачу его Персональных данных Компании в соответствии с Политикой является полным и безусловным.
- Посетителям Сайта следует воздержаться от заполнения формы и/или от использования других сервисов Сайта в случае несогласия (полного или частичного) с Политикой, а равно несогласия предоставить персональные данные.
- Согласие, даваемое пользователем, включает в себя согласие на сбор, систематизацию, накопление, хранение, уточнение (обновление, изменение), использование, занесение в базы данных (в том числе электронные) Компании, передачу внутри Компании другим отделам и подразделениям или поставщику услуг, обязующегося выполнять условия договора о защите персональных данных, в целях рассылки информационных материалов и/или в рекламных целях (в том числе рассылку приглашений на мероприятия, проводимые/организованные Компанией), трансграничную передачу, блокирование, обезличивание, уничтожение персональных данных.
- Согласие, даваемое пользователем, распространяется на следующие персональные данные: фамилия, имя, отчество, адрес электронной почты, должность, наименование организации, в которой работает пользователь, контактный телефон.
- Срок действия согласия пользователя является неограниченным, однако, пользователь вправе в любой момент отозвать настоящее согласие путём направления письменного уведомления на адрес электронной почты: info@keengo.ru, с пометкой «отзыв согласия на обработку персональных данных».
Keengo · Web Design & Development
© 2010–2019 Все права защищены
Сегодня вышла версия модуля поиска 9.5.3 (пока бета).
В ней реализовано определение раскладки совсем как у "взрослых" поисковиков.
Набираем в строке поиска "gfgf", а результаты получаем для "папа".
Алгоритм основан на анализе частотности буквосочетаний конкретного языка.
Берем запрос, переводим буквы в номера клавиш и получаем язык на котором набрано слово или фраза.
Несмотря на вероятностный характер алгоритм довольно точен.
На английском и русском словарях (30000 и 50000 слов) вероятность ошибки менее 1%.
Теперь о главном: поддержка автоопределения раскладки добавлена в компоненты search.title и search.page. Она включается и выключается параметром компонента.
Плохая новость заключается в том, что по умолчанию этот параметр включен. И кастомизированные шаблоны нуждаются в доработке. А именно:
Эти строки надо добавить в шаблон сразу после
.
будет искать так, как запросил пользователь, или опять сменит раскладку.
Вобщем, есть ли возможность искать по исходному запросу?
Супер, будем тестировать.
Максим, а как он понимает, что надо переключить? "baby" вот переключает к "ифин", к примеру
Надо сделать так, чтобы содержимое запроса в кавычках не исправлялось.
Мне кажется нужно учитывать наличие результатов по исходному запросу.
Если по исходному запросу ничего нет, то автоматически переводить.
Это увеличит нагрузку, но позволит избежать такого как сейчас:
Принтер HP -> Ghbynth HP
Принтер epson -> Ghbynth epson
HP -> РЗ
"Принтер" в след. версии будет определяться верно.
Мы перед реализацией функции думали пойти именно таким путем. И поняли, что это не решает одной из главных задач — меньше ошибочных поисков.
Вы можете кастомизировать компонент search.page с реализацией той логики которая вам нужна.
На это уйдет максимум полчаса:
1) комментируем строки 309-318
2) в строку 412 переносим закомментированные функции определения раскладки
И поняли, что это не решает одной из главных задач — меньше ошибочных поисков. |
А в сторону Google/Яндекс не курили, Максим? Может можно обратиться удаленно к их поиску и получить результаты. Ну и дополнительно от них думаю передается инфа что запрос был изменен, или "может вы имели в виду. ".
Вариант второй. Вести индексированную базу авторитетных источников. В коменте ниже упоминается "SDRH-16M16". Так вот, если SDRH упоминается где-либо в title (ИБ, блоги, форумы, . ), то ставить галочку "такое слово существует" и скрипт ничего не меняет. В противном случае менять раскладку. Наверняка на спец.сайтах такие названия есть в заголовках (каталог товаров), так что процент точных попаданий вырастет.
Вариант третий. Смотреть сколько результатов с измененной раскладкой. И если для ЫВКР-16Ь16 (тот же пример) ничего не нашлось, то наверняка менять раскладку не стоит.
Ну и комбинация 2 и 3 варианта думаю очень сильно уменьшит промахи.
Я делал на одном проекте так (задача стояла также, искать по тому что вводится):
— разбиваем на слова
— Каждое слово переводим из английской раскладки в русскую, и если оригинал и перевод не совпадают, ищем в базе и на русском и на аглийском.
Т.е. как то так:
Ткани оптом — (ткани) & (оптом)
Nrfyb jgnjv — (nrfyb | ткани) & (jgnjv | оптом)
Nrfyb оптом — (nrfyb | ткани) & (оптом)
когда-то воспользовался рецептом из этого поста
все дело в определении популярные лемм русского языка в англ раскладке.
"Использовать поиск яндекса/гугла прямо на сайте тоже нельзя, заказчика не устраивает такое решение."
а зачем прямо на сайте? curl’om его 🙂 и ответ парсить