Jump to content

Recommended Posts

Mam dosyć spory problem z wyszukiwarką pod prestashop 1.4.6.2.

Mianowicie gdy wpiszę nazwę danego produktu na stronie głównej ( z modułu prostego wyszukiwania),

pokazuje albo nie te produkty lub w ogóle nie wyświetla albo pokazuje coś jeszcze poza nimi ( takie które nie są związane w żaden sposób czy to przez opis czy tagi z Tym jednym konkretnym produktem).

 

Dla przykładu : Tłumice, nasady, klucze, czy węże pożarnicze.

Przebudowywałem index chyba z 5 razy.
Edytowałem Plik classess/Search.php
modyfikowałem 2 linijki :
Pierwsza :
 

'\x{e000}-\x{f8ff}\x{fb29}\x{fd3e}-\x{fd3f}\x{fdfc}-\x{fdfd}'.
'\x{a806}\x{a80b}\x{a823}-\x{a82b}\x{e000}-\x{f8ff}\x{fb1e}\x{fb29}\x{fd3e}'.
'\x{a806}\x{a80b}\x{a823}-\x{a82b}\x{d800}-\x{f8ff}\x{fb1e}\x{fb29}\x{fd3e}'.
'\x{fd3f}\x{fdfc}-\x{fe6b}\x{feff}-\x{ff0f}\x{ff1a}-\x{ff20}\x{ff3b}-\x{ff40}'.
'\x{ff5b}-\x{ff65}\x{ff70}\x{ff9e}\x{ff9f}\x{ffe0}-\x{fffd}');

Druga :

 

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

		foreach ($words AS $key => $word)
if (!empty($word) AND strlen($word) >= (int)Configuration::get('PS_SEARCH_MINWORDLEN'))			{
		$word = str_replace('%', '\\%', $word);
		$word = str_replace('_', '\\_', $word);
		$intersectArray[] = 'SELECT id_product
		 FROM '._DB_PREFIX_.'search_word sw
		 LEFT JOIN '._DB_PREFIX_.'search_index si ON sw.id_word = si.id_word
		  WHERE sw.id_lang = '.(int)$id_lang.'
		   AND sw.word LIKE '.($word[0] == '-'
	? ' \''.pSQL(Tools::substr($word, 1, PS_SEARCH_MAX_WORD_LENGTH)).'%\''
	: '\''.pSQL(Tools::substr($word, 0, PS_SEARCH_MAX_WORD_LENGTH)).'%\''
	);if ($word[0] != '-')
$scoreArray[] = 'sw.word LIKE 
\''.pSQL(Tools::substr($word, 0, PS_SEARCH_MAX_WORD_LENGTH)).'%\'';
}
	else
		unset($words[$key]);
		if (!sizeof($words))
	return ($ajax ? array() : array('total' => 0, 'result' => array()));

(linie 56 / 57 / 58 / 170 / 181 / 182 to te które zostały zmienione).
Ale dalej jest to samo.

 

Dla testów stworzyłem kopie obecnej strony i z-upgradowałem ją do PS 1.6 i na tej wersji prestashop wyszukiwanie działa o 85% lepiej niż w przypadku starszej wersji.  Czy da się jakoś zmodyfikować stary blok prostego wyszukiwania by działał tak dobrze jak ten pod nową wersją prestashopu ? 

Link do witryny : http://supron1.pl

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

  • 2 weeks later...

Dobra, temat można zamknąć. Problemem były słowa kluczowe w produktach i aliasy do nich. Nie można było odnaleźć produktu ponieważ słowa kluczowe i aliasy były błędnie wpisane przez poprzednika. Teraz wszystko śmiga i hula :D 

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

  • 5 months later...

Trochę odkopię temat a nie będę zakładał nowego, mam presta 1.6.0.9, jest problem z wyszukiwarką, w BO włączyłem wyszukiwanie AJAX, index przebudowany ale nie działa od strony frontowej, szukaj zachowuje się jak zwykłe szukaj czyli nie podpowiada produktów po wpisywaniu liter. ktoś może pomóc co jeszcze muszę zrobić? :)

 

e: i jeszcze druga sprawa, nie wyszukuje w części frazy czyli np:

 

mamy produkt "Nowy produkt ZK5002", jak wpiszę 5002 to nie pojawia się ten produkt a chciałbym :)

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

×
×
  • Create New...