Jump to content

Поиск на русском


lordmicro

Recommended Posts

Здравствуйте. Обновился с версии 1.4.5.1 до последней 1.5.6.1

Перестал работать поиск и начал транслитироваться русский.

 

При запросе "втулка" писалось что-то вроде: Ничего не найдено по Вашему запросу "vtulka".

Проблему решил обновлением controllers/front/SearchController.php до последней версии из GitHub. Убрал лишь строчки 

$this->addColorsToProductList(...);
Мой diff:

[spam-filter] -88,16 [spam-filter],22 [spam-filter]
 			$this->productSort();
 			$this->n = abs((int)(Tools::getValue('n', Configuration::get('PS_PRODUCTS_PER_PAGE'))));
 			$this->p = abs((int)(Tools::getValue('p', 1)));
+            $original_query = Tools::safeOutput($query);
 			$query = Tools::replaceAccentedChars(urldecode($query));			
 			$search = Search::find($this->context->language->id, $query, $this->p, $this->n, $this->orderBy, $this->orderWay);
+            foreach ($search['result'] as &$product)
+                    $product['link'] .= (strpos($product['link'], '?') === false ? '?' : '&').'search_query='.urlencode($query).'&results='.(int)$search['total'];
 			Hook::exec('actionSearch', array('expr' => $query, 'total' => $search['total']));
 			$nbProducts = $search['total'];
 			$this->pagination($nbProducts); 
 			$this->context->smarty->assign(array(
 				'products' => $search['result'], // DEPRECATED (since to 1.4), not use this: conflict with block_cart module
 				'search_products' => $search['result'],
 				'nbProducts' => $search['total'],
-				'search_query' => $query,
+				'search_query' => $original_query,
 				'homeSize' => Image::getSize(ImageType::getFormatedName('home'))));
 		}
 		else if (($tag = urldecode(Tools::getValue('tag'))) && !is_array($tag))
Проблема с выводом транслита решилась. Но поиск не заработал.

 

Сделал переиндексацию базы поиска. Поиск кое-как заработал.

 

У меня стоит порезанный локализатор. Я использую оттуда Lingua_Stem_Ru. До обновления работал отлично. После обновления часть товаров по проверочным запросам не находились. Список псевдонимов, который настраивается в админке, не отрабатывал.

 

Начал копать. Докопался до коммита: [] BO : improved unicode characters replacement in URLs (Russian and Ukrainian characters added).

Я откатил изменения этого коммита и пришло моё счастье. Поиск работает снова прекрасно.

 

Может мне кто-нибудь объяснить смысл этого коммита?

 

For English users topic here.

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

  • 1 month later...

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...