bartek22 Posted March 8, 2016 Share Posted March 8, 2016 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 More sharing options...
REGE Posted March 9, 2016 Share Posted March 9, 2016 Jedyne co mi przychodzi tak na szybko do głowy, nie licząc modyfikacji kodu źródłowego, to ustawienie aliasów wyszukiwania... Link to comment Share on other sites More sharing options...
bartek22 Posted March 10, 2016 Author Share Posted March 10, 2016 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 More sharing options...
hakeryk2 Posted March 10, 2016 Share Posted March 10, 2016 Po dodaniu aliasu spróbuj przebudować indeks wyszukiwania jeszcze. Link to comment Share on other sites More sharing options...
bartek22 Posted March 10, 2016 Author Share Posted March 10, 2016 Po dodaniu aliasu spróbuj przebudować indeks wyszukiwania jeszcze. Niestety to nie pomogło. Czy macie jeszcze jakieś pomysły? Będę wdzięczny za pomoc. Link to comment Share on other sites More sharing options...
REGE Posted March 10, 2016 Share Posted March 10, 2016 (edited) 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 Edited March 10, 2016 by REGE (see edit history) Link to comment Share on other sites More sharing options...
hakeryk2 Posted March 12, 2016 Share Posted March 12, 2016 (edited) A jakie masz ustawienia w BO -> Preferencje - Szukaj ? Ja mam coś takiego: 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 March 12, 2016 by hakeryk2 (see edit history) Link to comment Share on other sites More sharing options...
bartek22 Posted March 13, 2016 Author Share Posted March 13, 2016 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 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 More sharing options...
bartek22 Posted March 13, 2016 Author Share Posted March 13, 2016 A jakie masz ustawienia w BO -> Preferencje - Szukaj ? Ja mam coś takiego: search.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 More sharing options...
bartek22 Posted March 13, 2016 Author Share Posted March 13, 2016 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now