Jump to content

Поиск не отображает результаты корректно


Recommended Posts

Доброго времени суток всем. Столкнулся с такой проблемой - у меня магазин компьютерной техники, я хочу найти ноутбук по определенной модели и ввожу в поиск, к примеру, "K50ID-T440SCGDAW", и поисковик говорит, что такого продукта нет! Дело в том, что эта модель прописана так - "Asus K50ID (K50ID-T440SCGDAW)", и, если запрос указывать в скобках "(K50ID-T440SCGDAW)", тогда все прекрасно находится, если без них - товара нет. Я официально русскоязычном форуме престы я ответа не получил. Тогда я отправил запрос на багтрекер, где мне через полторы недели ответили. Вот, собственно, ответ http://www.prestashop.com/bug_tracker/view/3987/
Делал все по инструкции, ничего не изменилось. Дальше мне согласны помогать лишь за 90 евро в час... Простите, но я считаю, что это дороговато. Вот прошу помощи у вас. Заранее благодарен.
P.S. Скриншоты прилагаются.
P.P.S. Сейчас использую последние файлы search.php из SVN.

21691_1z206dXzgZis0xeZ0sbK_t

21692_CSzwqUXKVjrPrUrdLF1n_t

Share this post


Link to post
Share on other sites

Аналогичная проблема. Кстати файл поиска из SVN частично решил проблему. В этом всем есть закономерность. До замены файла search.php не искало LDT-900 и близкие к этому слова то есть, когда возле искомого значение имелись какие-то символы, то оно его не находило, аналогично и с такой позицией AVH-P6050DVD, то после замені первый вариант таки начало искать проблем нету, вот на багтрекере и написали мол пофиксили, а вот со второй позицией проблемы. Соответственно если правильно прописать сюда define(’PREG_CLASS_PUNCTUATION’, то оно должно работать. Вот токо где его найти

Share this post


Link to post
Share on other sites
  • 2 weeks later...

возьмите файл Search.php, прикрепленный к этому посту, залейте в папку /classes
после этого надо пересоздать индекс из админки.
проблема в том, что в престе традиционно под названия выделяется мало места, в том числе в версии 1.3 длина поля всего 128.
а вообще, ищите ответу у шопмастера – http://shopmaster.blogmasters.ru

Search.php

Share this post


Link to post
Share on other sites

Cimmerian, спасибо за помощь, но, к сожалению, это не помогло. Зато я обновился в SVN и забрал оттуда свежий search.php, который и решил все проблемы. Файл прилагается. Кидаете его в /classes и обязательно пересоздаете индекс товара.

Search.php

Share this post


Link to post
Share on other sites
  • 1 year later...

скачал с svn последний всё вернулось на свои места,
к примеру вводим в поиск 5100 -находит модель ПЛАНШЕТНЫЙ ПК PRESTIGIO MULTIPAD 5100
http://knopka.kh.ua/search?orderby=position&orderway=desc&search_query=5100&submit;_search=Поиск

вводим s5100 - находит ФОТОАППАРАТ NIKON COOLPIX S5100 BLACK (VMA641E1)
http://knopka.kh.ua/search?orderby=position&orderway=desc&search_query=s5100&submit;_search=Поиск

печаль...

Share this post


Link to post
Share on other sites

Поиск ищет по четкому совпадению с началом поисковой фразы. например если после s поставить пробел, то найдутся оба товара.

Чтобы искал по любому месту вхождения нужно добавить после like %. например заменить

? ' \''.pSQL(Tools::substr($word, 1, PS_SEARCH_MAX_WORD_LENGTH)).'%\''


на

? ' \'%'.pSQL(Tools::substr($word, 1, PS_SEARCH_MAX_WORD_LENGTH)).'%\''



И еще в нескольких местах

  • Like 1

Share this post


Link to post
Share on other sites
  • 4 months later...
  • 2 weeks later...

У меня не ищет.Более того в индекс записываются внутренние номера позиций,хотя кодировки совпадают,везде utf8.

Но поиск в админке работает на ура.

никто не сталкивался с подобной проблемой?

Share this post


Link to post
Share on other sites
  • 1 year later...

Поиск ищет по четкому совпадению с началом поисковой фразы. например если после s поставить пробел, то найдутся оба товара.

 

Чтобы искал по любому месту вхождения нужно добавить после like %. например заменить

? ' \''.pSQL(Tools::substr($word, 1, PS_SEARCH_MAX_WORD_LENGTH)).'%\''

на

? ' \'%'.pSQL(Tools::substr($word, 1, PS_SEARCH_MAX_WORD_LENGTH)).'%\''

 

И еще в нескольких местах

 

А как сделать чтобы искал по одному из слов? Например чтобы при вводе "рога" и "копыта" находилось оба товара? А-то сейчас вообще ни одного не находит.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More