Перейти к содержанию
Radimirich

Неправильная выдача поиска

Рекомендуемые сообщения

Здравствуйте. Проблема с поиском. Ситуация такая: 

Есть магазин по продаже деталей. В названиях преобладают числа. Например 113620, 233620, 3620 Л, 3620 Г.

Когда в поиск вбиваю например 3620 выдает сначала 113620 потом 23620(а наименовании много) и  только в конце 3620.

А мне нужно чтобы 3620 был в начале. Как это можно это реализовать? 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Явно - никак

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не может быть такого, релевантность чисел же присутствует. Значит можно где то это прописать. Помогите пожалуйста

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

поэтому и говорю - явно - никак.

 

все сводится к конструкции

%фраза%

 

Можно свести к конструкции

фраза%

%фраза%

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Копай функцию getProducts() в классе ModelCatalogProduct.

Нужно создать SQL-запрос, который выдаст массив товаров с именами, НАЧИНАЮЩИМИСЯ с искомой строки.

Потом к этому массиву добавить массив $product_data[], "родной" для функции. Он выдает товары, у которых имя ПОХОЖЕ (LIKE) на искомую строку.

Исключить дубли.

Вернуть объединенный массив. В нем 3620 будет в начале.

Похоже, для первого запроса достаточно удалить начальный % в строке "pd.name LIKE '%" . $this->db->escape($word) . "%'" (как и предлагает chukcha)

Как-то так...

Изменено пользователем igon

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробуйте склонировать метод getProduct() для поиска  и в нем:

ORDER BY name=0, -name DESC, name

Утянуто отсюда

 

По моему может вам помочь.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Копай функцию getProducts() в классе ModelCatalogProduct.

Нужно создать SQL-запрос, который выдаст массив товаров с именами, НАЧИНАЮЩИМИСЯ с искомой строки.

Потом к этому массиву добавить массив $product_data[], "родной" для функции. Он выдает товары, у которых имя ПОХОЖЕ (LIKE) на искомую строку.

Исключить дубли.

Вернуть объединенный массив. В нем 3620 будет в начале.

Похоже, для первого запроса достаточно удалить начальный % в строке "pd.name LIKE '%" . $this->db->escape($word) . "%'" (как и предлагает chukcha)

Как-то так...

 

Извините я не силен в этом, это все в контроллере search.php нужно править?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

поэтому и говорю - явно - никак.

 

все сводится к конструкции

%фраза%

 

Можно свести к конструкции

фраза%

%фраза%

Сначала в селекте должно быть "=", потом "строка%", потом "%строка", потом "%строка%" - как-то так.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Извините я не силен в этом, это все в контроллере search.php нужно править?

Нет, в Model/Catalog/product.php

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сначала в селекте должно быть "=", потом "строка%", потом "%строка", потом "%строка%" - как-то так.

Как карта ляжет, все зависит от формируемого алгоритма оптимизации

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо всем за отзывчивость, буду пробовать, потом отпишусь :-)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сначала в селекте должно быть "=", потом "строка%", потом "%строка", потом "%строка%" - как-то так.

 

Как карта ляжет, все зависит от формируемого алгоритма оптимизации

 

Условие "=", ИМХО, избыточно - юзеру вряд ли захочется вбивать имя продукта полностью.

 

Условие "%строка" тоже избыточно - его полностью перекрывает "%строка%".

 

ОДИН select с двумя (тремя???) LIKE? Ну да, тут от расклада карт может многое зависеть.

 

 А вот ДВА относительно простых селекта с одним LIKE в каждом и объединением results в PHP - самое, ИМХО, то!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Условие "=", ИМХО, избыточно - юзеру вряд ли захочется вбивать имя продукта полностью.

 

Условие "%строка" тоже избыточно - его полностью перекрывает "%строка%".

 

ОДИН select с двумя (тремя???) LIKE? Ну да, тут от расклада карт может многое зависеть.

 

 А вот ДВА относительно простых селекта с одним LIKE в каждом и объединением results в PHP - самое, ИМХО, то!

Все зависит от товаров. Зачастую важны именно детали.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все зависит от товаров. Зачастую важны именно детали.

Согласен. Но ТС не модуль же пишет. Зачем здесь универсальность? 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Согласен. Но ТС не модуль же пишет. Зачем здесь универсальность? 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Похожий контент

    • От shchs
      350.00 руб
      Скачать/Купить дополнение


      SearchLive - Поиск с подсказками
      SearchLive - Поиск с подсказками для интернет-магазина.
       
      Модуль "живого" поиска с подсказками совпадений. Поиск ведется по названию, описанию, модели, артикула и тегам товара, с возможностью настройки как полей для поиска, так и релевантности совпадений и набора исключаемых символов. Так же есть настройки вида и количества результатов.
      Файлы, отвечающие за механизм поиска, а соответственно и код в них открыт и легко может быть модифицирован под конкретные нужны.

      Перед установкой дополнения, обязательно ознакомьтесь с порядком новой установки и обновления,
      описанном в файле "readme.rus" в архиве с модулем.
       
      Условия приобретения:
      1. Данное дополнение распространяется по принципу 1 лицензия - 1 домен + 1 тестовый домен.
      2. Поддомены считаются отдельным доменом!
      3. Тестовым доменом может быть только либо технический адреса хостинга, либо поддомен "test" основного домена.
      4. Модуль распространяется по принципу "как есть", со всеми его особенностями, достоинствами
      и недостатками, как имеющимися в данный момент так и выявленными в будущем, поэтому
      любые исправления или изменения модуля возможны только по воле автора и никак иначе.
      5. В модуле используется технология защиты, препятствующая несанкционированному использованию модуля,
      а также ограничивающая изменение файлов с его кодом.
      6. Данная защита не снимается ни при каких условиях.
      7. Применение средств и методов, позволяющих обойти используемую технологию защиты, являются незаконными.
      8. Лицензия возврату не подлежит!
      9. Продукт не является бесплатным программным обеспечением и не может распространяться в какой-либо форме где-либо без письменного согласия автора.
       
      Условия Тех.поддержки:
      1. Вопросы по поддержке вы также можете задавать по почте shchs@ya.ru, либо по скайпу: ashchs
      2. Активация дополнения выполняется в течении суток с момента покупки.
      3. Тех.поддержка оказывается в течении двух суток с момента поступления запроса.
       3.1 Тех.поддержка оказывается при предоставлении доступа в админ.панель и к файлам сайта по протоколу FTP.
      4. В условия тех.поддержки не входит:
       4.1 согласование работы дополнения с какими-то либо другими модулями.
       4.2 настройка и запуск дополнения на версиях opencart/ocstore отличных от явно заявленных.
       4.3 изменение работы или добавление каких-либо новых функций.
      5. Поддержка оказывается только легальным и добросовестным покупателям, купившим данный продукт непосредственно у автора, а также на сайте opencartforum.com
       
      Системные требования:
      1. Установленный на сервере IonCube loader последней версии
      2. Версия PHP минимум 5.3
      3. Opencart/Ocstore 1.5.4.1-1.5.6.x, 2.0.x.x, 2.1.x.x, 2.2.x.x, 2.3.x.x, 3.0.2.x
       
      Приобретая данное дополнение, вы тем самым соглашаетесь с системными требованиями, ограничениями, условиями покупки и тех.поддержки.
       
      Для приобретения дополнительных лицензий обращаться на shchs@ya.ru
       
      Возможно получение тестовой лицензии на 10 дней - писать на shchs@ya.ru
       
      Демо:
      http://test4.shchs.bget.ru/admin/
      demo
      demo
      Добавил shchs Добавлено 22.02.2018 Категория Поиск Системные требования Ioncube Loader Сайт разработчика Старая цена Метод активации Автоматическая активация Ioncube Loader Требуется OpenCart 3.0
      2.3
      2.2
      2.1
      2.0
      1.5.6.4
      1.5.6.3
      1.5.6.2
      1.5.6.1
      1.5.6
      1.5.5.1
      1.5.5
      1.5.4.1 ocStore 3.0
      2.3
      2.2
      2.1
      1.5.5.1.2
      1.5.5.1.1
      1.5.5.1
      1.5.4.1.2
      1.5.4.1.1
      1.5.4.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х
      OcShop 1.5.6.4.х  
    • От shchs
      SearchLive - Поиск с подсказками для интернет-магазина.
       
      Модуль "живого" поиска с подсказками совпадений. Поиск ведется по названию, описанию, модели, артикула и тегам товара, с возможностью настройки как полей для поиска, так и релевантности совпадений и набора исключаемых символов. Так же есть настройки вида и количества результатов.
      Файлы, отвечающие за механизм поиска, а соответственно и код в них открыт и легко может быть модифицирован под конкретные нужны.

      Перед установкой дополнения, обязательно ознакомьтесь с порядком новой установки и обновления,
      описанном в файле "readme.rus" в архиве с модулем.
       
      Условия приобретения:
      1. Данное дополнение распространяется по принципу 1 лицензия - 1 домен + 1 тестовый домен.
      2. Поддомены считаются отдельным доменом!
      3. Тестовым доменом может быть только либо технический адреса хостинга, либо поддомен "test" основного домена.
      4. Модуль распространяется по принципу "как есть", со всеми его особенностями, достоинствами
      и недостатками, как имеющимися в данный момент так и выявленными в будущем, поэтому
      любые исправления или изменения модуля возможны только по воле автора и никак иначе.
      5. В модуле используется технология защиты, препятствующая несанкционированному использованию модуля,
      а также ограничивающая изменение файлов с его кодом.
      6. Данная защита не снимается ни при каких условиях.
      7. Применение средств и методов, позволяющих обойти используемую технологию защиты, являются незаконными.
      8. Лицензия возврату не подлежит!
      9. Продукт не является бесплатным программным обеспечением и не может распространяться в какой-либо форме где-либо без письменного согласия автора.
       
      Условия Тех.поддержки:
      1. Вопросы по поддержке вы также можете задавать по почте shchs@ya.ru, либо по скайпу: ashchs
      2. Активация дополнения выполняется в течении суток с момента покупки.
      3. Тех.поддержка оказывается в течении двух суток с момента поступления запроса.
       3.1 Тех.поддержка оказывается при предоставлении доступа в админ.панель и к файлам сайта по протоколу FTP.
      4. В условия тех.поддержки не входит:
       4.1 согласование работы дополнения с какими-то либо другими модулями.
       4.2 настройка и запуск дополнения на версиях opencart/ocstore отличных от явно заявленных.
       4.3 изменение работы или добавление каких-либо новых функций.
      5. Поддержка оказывается только легальным и добросовестным покупателям, купившим данный продукт непосредственно у автора, а также на сайте opencartforum.com
       
      Системные требования:
      1. Установленный на сервере IonCube loader последней версии
      2. Версия PHP минимум 5.3
      3. Opencart/Ocstore 1.5.4.1-1.5.6.x, 2.0.x.x, 2.1.x.x, 2.2.x.x, 2.3.x.x, 3.0.2.x
       
      Приобретая данное дополнение, вы тем самым соглашаетесь с системными требованиями, ограничениями, условиями покупки и тех.поддержки.
       
      Для приобретения дополнительных лицензий обращаться на shchs@ya.ru
       
      Возможно получение тестовой лицензии на 10 дней - писать на shchs@ya.ru
       
      Демо:
      http://test4.shchs.bget.ru/admin/
      demo
      demo
    • От regau
      Перестал работать поиск в шапке. В чём может быть дело? При этоп доп.поиск работает
       
       
       
       
      http://pandasale.ru/
       
       
       
       
       
      search.tpl
       
       
    • От Pavel666
      Скачать/Купить дополнение


      Блок поиска
      Встраиваемый в схемы ajax  блок поиска, ну в принципе на фото все видно, поиск используется стандартный от опенкарт.
      Со стилями как можно заметить сильно не заморачивался 
      В админке можно поменять все стили на свои.
      Добавил Pavel666 Добавлено 15.11.2018 Категория Поиск Системные требования Сайт разработчика Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 2.3 ocStore 2.3 OpenCart.Pro, ocShop Opencart.pro 2.3  
    • От Pavel666
      Встраиваемый в схемы ajax  блок поиска, ну в принципе на фото все видно, поиск используется стандартный от опенкарт.
      Со стилями как можно заметить сильно не заморачивался 
      В админке можно поменять все стили на свои.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.