Jump to content

Problem Z Wyszukiwaniem Produktów


bartek22

Recommended Posts

Witam,

 

może ktoś już miał taki problem z wyszukiwaniem produktów w których w nazwie występuje ' - '. Posiadam preste  w wersji 1.6.0.9. Wpisując w wyszukiwarkę (frontend) słowo ec-1000 to produkty ładnie mi znajduje ale jeżeli wpisze ec 1000 to już produktów nie znajdzie mi.

 

Czy wie ktoś jak rozwiązać ten problem? Sprawdzałem na wersji 1.6.1.1. i tutaj działa super ale nie chcę robić aktualizacji sklepu a też nie wiem co dokładnie podmienić żeby działało.

 

Wspomnę że próbowałem usuwać procenty w

 

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

 

klasa search.php ale to nie pomogło.

 

Prośba o pomoc jeżeli ktoś wie jak to zrobić.

 

Pozdrawiam

Link to comment
Share on other sites

Jedyne co mi przychodzi tak na szybko do głowy, nie licząc modyfikacji kodu źródłowego, to ustawienie aliasów wyszukiwania...

 

Witam,

 

REGE czy te aliasy to wystarczy dodać czy może jeszcze gdzieś się to włącza? Dodałem alias i wynik ale niestety to nie pomogło. :)

Jest może jeszcze inne rozwiązanie tego problemu?

 

pzdr

Link to comment
Share on other sites

A jakie masz ustawienia w BO -> Preferencje - Szukaj ?

 

Ja mam coś takiego:

 

post-1146962-0-07981300-1457771444_thumb.jpg

 

To wszystko śmiga i wyszukuje u mnie słowa z - w nazwie bez żadnych zmian w kodzie. I tak wiem, że wartość "2" jest mocno obciążająca bazę danych, ale przy 5000 produktach na gównohostingu to działa całkiem szybko. 

 

I wywaliłem słowa zabronione, ponieważ gdy na liście zabronionych było np "na" to nie wyszukiwało produktów, które zawierały taki zwrot w nazwie: np nie znalazłoby produktów banan itp.

Edited by hakeryk2 (see edit history)
Link to comment
Share on other sites

Może już w klasie, w odpowiednim miejscu, zamienić myślniki na spacje wstawiając kod w stylu:

$word = str_replace('-', ' ', $word);

EDIT: Chociaż nie, bo wtedy znajdzie nam ec 1000 a nie znajdzie ec-1000 :unsure:

 

 

Niestety ta opcja też nie pomoże, bo teraz znajduje mi produkty z '-' czyli ec-1000 a jak wstawię replace '-' na ' ' to nic nie znajduje . :) Właśnie chodzi o to że jak wpiszę bez tego '-' to żeby też znajdywało.

Link to comment
Share on other sites

A jakie masz ustawienia w BO -> Preferencje - Szukaj ?

 

Ja mam coś takiego:

 

attachicon.gifsearch.jpg

 

To wszystko śmiga i wyszukuje u mnie słowa z - w nazwie bez żadnych zmian w kodzie. I tak wiem, że wartość "2" jest mocno obciążająca bazę danych, ale przy 5000 produktach na gównohostingu to działa całkiem szybko. 

 

I wywaliłem słowa zabronione, ponieważ gdy na liście zabronionych było np "na" to nie wyszukiwało produktów, które zawierały taki zwrot w nazwie: np nie znalazłoby produktów banan itp.

 

Widzę, że masz chyba nowszą wersję presty bo te opcje w 1.6.0.9 nie posiadam, a w najnowszej to mam i tam działa to wyszukiwanie :) chodzi właśnie o to żeby nie robić aktualizacji systemu.

 

Ja mam zaznaczone na TAK:

- wyszukiwanie z użyciem Ajaxa

- szybkie wyszukiwanie

 

Minimalna długość słowa: 2

Słowa zabronione: puste pole.

 

Tylko takie mam pola w sekcji Szukaj i ustawione tak jak podałem. :)

Link to comment
Share on other sites

Wiecie co Panowie chyba rozwiązałem problem.

 

Zamieniłem w klasie search.php

 

$words[0] =  mysql_escape_string($expr);

 

na

 

$words = explode(' ', Search::sanitize($expr, $id_lang, false, $context->language->iso_code));

Link to comment
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...