Jump to content

Похожие товары выдают ошибку


Recommended Posts

При включении опции "Показывать похожие товары" получаем ошибку "1191 - Can't find FULLTEXT index matching the column list".
В чем может быть проблема?

Link to post
Share on other sites
1 час назад, eugenem сказал:

При включении опции "Показывать похожие товары" получаем ошибку "1191 - Can't find FULLTEXT index matching the column list".
В чем может быть проблема?

В таблицами в базе данных ничего не делали?!

Например движок таблиц меняли с MyISAM на InnoDB?!

Это видно если сделать резервную копию базы например и посмотреть sql файл, в таблице prodcuts_decription внизу что там, MyISAM или InnoDB

Можно ещё попробовать FULLTEXT индекс добавить в таблицы.

Типа:

ALTER TABLE products_description
ADD FULLTEXT(products_name, products_description);

В общем, погуглите эту ошибку.

 

Link to post
Share on other sites

Да, проблема именно в InnoDB. Нужно сменить тип таблиц. Запрос:
 

ALTER TABLE products ENGINE=MyISAM;
ALTER TABLE products_description ENGINE=MyISAM;

 

Link to post
Share on other sites
  • 6 months later...
boamasteruga

Добрый день, подскажите в чем может быть причина ошибки 1191

ошибка появляется сама, работ не каких не делаю

Сделал запрос.

Сейчас все восстановилось, спасибо.

но в чем причина, какой работы написал в поддержку хостинга пока молчат.

ALTER TABLE products ENGINE=MyISAM;
ALTER TABLE products_description ENGINE=MyISAM;
Link to post
Share on other sites
support
2 часа назад, boamasteruga сказал:

Добрый день, подскажите в чем может быть причина ошибки 1191

ошибка появляется сама, работ не каких не делаю

Сделал запрос.

Сейчас все восстановилось, спасибо.

но в чем причина, какой работы написал в поддержку хостинга пока молчат.


ALTER TABLE products ENGINE=MyISAM;
ALTER TABLE products_description ENGINE=MyISAM;

Здравствуйте!

Видимо, таблицы были InnoDB. 

Link to post
Share on other sites
boamasteruga

Добрый день каждый день меняется кодировка ядра таблиц. на Inno DB

Где посмотреть ошибку, поддержка хостинга пищит что отрабатывается код  магазина

 

Link to post
Share on other sites
support
6 часов назад, boamasteruga сказал:

Добрый день каждый день меняется кодировка ядра таблиц. на Inno DB

Где посмотреть ошибку, поддержка хостинга пищит что отрабатывается код  магазина

 

Здравствуйте!

По умолчанию в VamShop все таблицы MyISAM.

и в коде нигде нет замены на InnoDB.

Даже ради интереса запустил писок по InnoDB

По всем файлам VamShop, нигде ничего не находит.

Может Вы у себя в коде что-то подобное добавляли?

Link to post
Share on other sites
boamasteruga

Да нечего не делал.. посмотрю логи ошибки...

 

Link to post
Share on other sites
support
4 часа назад, boamasteruga сказал:

Да нечего не делал.. посмотрю логи ошибки...

 

Зайдите в phpMyAdmin и в закладке SQL выполните код:

 ALTER TABLE products_description ENABLE KEYS;

У меня стало работать после этого запроса.

Пробовал на InnoDB таблицах products и products_description

Link to post
Share on other sites
boamasteruga

Благодарю, сегодня протестю. заметил что изменения происходят приблизительно в одно и тоже время. может кроны отрабатывают

Link to post
Share on other sites
support
55 минут назад, boamasteruga сказал:

Благодарю, сегодня протестю. заметил что изменения происходят приблизительно в одно и тоже время. может кроны отрабатывают

Да пусть отрабатывают, пусть будет InnoDB.

Я специально таблицы перевлё на InnoDB, мне вот этот код помог, на InnoDB тоже без ошибок работает, если выполнить код.

Link to post
Share on other sites
boamasteruga

Каждую ночь, что-то отрабатывает и выходит ошибка.

Нечего не изменял в ядре. все работало нормально в чем причина не пойму.

меняю кодировку бызы , востанавливается работоспособность

ALTER TABLE products ENGINE=MyISAM;
ALTER TABLE products_description ENGINE=MyISAM;

Делаю такой запрос

 ALTER TABLE products_description ENABLE KEYS;

возвращает пустой запрос

MYSQL ERROR REPORT
- 03/04/2021 04:04:58
---------------------------------------
1191 - Can't find FULLTEXT index matching the column list

select
p.products_id,
p.label_id,
p.products_image,
p.products_quantity,
p.products_price,
p.products_fsk18,
p.products_ordered,
p.products_model,
pd.products_name,
pd.products_short_description,
pd.products_meta_title,
pd.products_meta_description,
pd.products_description,
pd.products_keywords,
IF(pd.products_name LIKE '%классическ брюк артикул%',0,IF(pd.products_keywords LIKE '%классическ брюк артикул%',1,IF(pd.products_name LIKE ('% классическ%') or pd.products_name LIKE ('% брюк%') or pd.products_name LIKE ('% артикул%'),2,IF(pd.products_description LIKE ('% классическ%') or pd.products_description LIKE ('% брюк%') or pd.products_description LIKE ('% артикул%'),3,4)))) AS searchorder,
match (pd.products_name, pd.products_description, pd.products_keywords) against ('Классические брюки Артикул' IN BOOLEAN MODE) AS head_relevance
from products_description pd
left join products p
on (p.products_id = pd.products_id)
where (match (pd.products_name) against ('Классические брюки Артикул' IN BOOLEAN MODE)
or match (pd.products_description) against ('Классические брюки Артикул' IN BOOLEAN MODE)
or match (pd.products_keywords) against ('Классические брюки Артикул' IN BOOLEAN MODE)
)
and p.products_status = '1'
and pd.language_id = '1'
and pd.products_id NOT IN ('1594')

order by head_relevance desc, searchorder
limit 20
---------------------------------------
Server Name : mydomen.ru
Remote Address: 37.192.115.175
Referer : https://mydomen.ru/zhenskie-brjuki.html
Requested : /article_30_00.html
Trace Back : #0 vam_db_error() called at [/home/n/mydomen/public_html/inc/vam_db_query.inc.php:34]
#1 vam_db_query() called at [/home/n/mydomen/public_html/includes/classes/product.php:396]
#2 product->getSimilarProducts() called at [/home/n/mydomen/public_html/includes/modules/similar_products.php:7]
#3 include(/home/n/mydomen/public_html/includes/modules/similar_products.php) called at [/home/n/mydomen/public_html/includes/modules/product_info.php:351]
#4 include(/home/n/mydomen/public_html/includes/modules/product_info.php) called at [/home/n/mydomen/public_html/product_info.php:58]
#5 include(/home/n/mydomen/public_html/product_info.php) called at [/home/n/mydomen/public_html/manager.php:109]

==========================================================================

***********************************

Ответ Хостера

Проблема вызвана автоматической конвертацией myisam таблиц в innodb на серверах с zfs, перенос на который был осуществлен при смене тарифного плана.
В качестве решения проблемы мы можем перенести ваш аккаунт на сервер с другой файловой системой.
Пожалуйста, внимательно ознакомьтесь с информацией ниже и сообщите, в какое время мы можем выполнить перенос. Обратите внимание на пункт о резервных копиях.

Link to post
Share on other sites
support
5 часов назад, boamasteruga сказал:

Каждую ночь, что-то отрабатывает и выходит ошибка.

Нечего не изменял в ядре. все работало нормально в чем причина не пойму.

меняю кодировку бызы , востанавливается работоспособность


ALTER TABLE products ENGINE=MyISAM;
ALTER TABLE products_description ENGINE=MyISAM;

Делаю такой запрос


 ALTER TABLE products_description ENABLE KEYS;

возвращает пустой запрос

MYSQL ERROR REPORT
- 03/04/2021 04:04:58
---------------------------------------
1191 - Can't find FULLTEXT index matching the column list

select
p.products_id,
p.label_id,
p.products_image,
p.products_quantity,
p.products_price,
p.products_fsk18,
p.products_ordered,
p.products_model,
pd.products_name,
pd.products_short_description,
pd.products_meta_title,
pd.products_meta_description,
pd.products_description,
pd.products_keywords,
IF(pd.products_name LIKE '%классическ брюк артикул%',0,IF(pd.products_keywords LIKE '%классическ брюк артикул%',1,IF(pd.products_name LIKE ('% классическ%') or pd.products_name LIKE ('% брюк%') or pd.products_name LIKE ('% артикул%'),2,IF(pd.products_description LIKE ('% классическ%') or pd.products_description LIKE ('% брюк%') or pd.products_description LIKE ('% артикул%'),3,4)))) AS searchorder,
match (pd.products_name, pd.products_description, pd.products_keywords) against ('Классические брюки Артикул' IN BOOLEAN MODE) AS head_relevance
from products_description pd
left join products p
on (p.products_id = pd.products_id)
where (match (pd.products_name) against ('Классические брюки Артикул' IN BOOLEAN MODE)
or match (pd.products_description) against ('Классические брюки Артикул' IN BOOLEAN MODE)
or match (pd.products_keywords) against ('Классические брюки Артикул' IN BOOLEAN MODE)
)
and p.products_status = '1'
and pd.language_id = '1'
and pd.products_id NOT IN ('1594')

order by head_relevance desc, searchorder
limit 20
---------------------------------------
Server Name : mydomen.ru
Remote Address: 37.192.115.175
Referer : https://mydomen.ru/zhenskie-brjuki.html
Requested : /article_30_00.html
Trace Back : #0 vam_db_error() called at [/home/n/mydomen/public_html/inc/vam_db_query.inc.php:34]
#1 vam_db_query() called at [/home/n/mydomen/public_html/includes/classes/product.php:396]
#2 product->getSimilarProducts() called at [/home/n/mydomen/public_html/includes/modules/similar_products.php:7]
#3 include(/home/n/mydomen/public_html/includes/modules/similar_products.php) called at [/home/n/mydomen/public_html/includes/modules/product_info.php:351]
#4 include(/home/n/mydomen/public_html/includes/modules/product_info.php) called at [/home/n/mydomen/public_html/product_info.php:58]
#5 include(/home/n/mydomen/public_html/product_info.php) called at [/home/n/mydomen/public_html/manager.php:109]

==========================================================================

***********************************

Ответ Хостера

Проблема вызвана автоматической конвертацией myisam таблиц в innodb на серверах с zfs, перенос на который был осуществлен при смене тарифного плана.
В качестве решения проблемы мы можем перенести ваш аккаунт на сервер с другой файловой системой.
Пожалуйста, внимательно ознакомьтесь с информацией ниже и сообщите, в какое время мы можем выполнить перенос. Обратите внимание на пункт о резервных копиях.

Ну можно ещё 2 первых sql запроса добавить в /inc/vam_db_connect.inc.php

Что б постоянно выполнялись они если кто на сайт заходит.

Но наверное лучше пусть Вас переведут куда-то без автоперевода таблиц.

Странно как-то, в прнудительном порядке лезут в Вашу базу данных и меняют таблицы каждый день.

Что-то я сомневаюсь, что дело в zfs

Link to post
Share on other sites
boamasteruga

Это цитата от тех поддержки хостинга. Сегодня протестирую, дальше уже подумаю с запросами:100_pray:

Link to post
Share on other sites
  • 1 month later...
boamasteruga
В 03.04.2021 в 13:53, support сказал:

Ну можно ещё 2 первых sql запроса добавить в /inc/vam_db_connect.inc.php

Что б постоянно выполнялись они если кто на сайт заходит.

Но наверное лучше пусть Вас переведут куда-то без автоперевода таблиц.

Странно как-то, в прнудительном порядке лезут в Вашу базу данных и меняют таблицы каждый день.

Что-то я сомневаюсь, что дело в zfs

Добрый день. Просто дабавить как запросы SQL, или их нужно обернуть  в код?

//Start VaM db-error изменение кодировки базы данных
   if ($$link){
   @mysqli_query($$link, "ALTER TABLE products ENGINE=MyISAM;");
   @mysqli_query($$link, "ALTER TABLE products_description ENGINE=MyISAM;");
   }

 

 $$link = mysqli_connect($server, $username, $password, $database);

if ($$link){
   @mysqli_query($$link, "SET SQL_MODE= ''");
   @mysqli_query($$link, "SET SQL_BIG_SELECTS=1");
   @mysqli_query($$link, "SET NAMES 'utf8' COLLATE 'utf8_general_ci'");
   @mysqli_query($$link, "ALTER TABLE products ENGINE=MyISAM;");
   @mysqli_query($$link, "ALTER TABLE products_description ENGINE=MyISAM;");
}

**************************************************

Вот так?

Link to post
Share on other sites
support
37 минут назад, boamasteruga сказал:

Добрый день. Просто дабавить как запросы SQL, или их нужно обернуть  в код?

//Start VaM db-error изменение кодировки базы данных
   if ($$link){
   @mysqli_query($$link, "ALTER TABLE products ENGINE=MyISAM;");
   @mysqli_query($$link, "ALTER TABLE products_description ENGINE=MyISAM;");
   }

 

 $$link = mysqli_connect($server, $username, $password, $database);

if ($$link){
   @mysqli_query($$link, "SET SQL_MODE= ''");
   @mysqli_query($$link, "SET SQL_BIG_SELECTS=1");
   @mysqli_query($$link, "SET NAMES 'utf8' COLLATE 'utf8_general_ci'");
   @mysqli_query($$link, "ALTER TABLE products ENGINE=MyISAM;");
   @mysqli_query($$link, "ALTER TABLE products_description ENGINE=MyISAM;");
}

**************************************************

Вот так?

Да, по идее, правильно.

Link to post
Share on other sites
boamasteruga

СПАСИБО! ВЫ ВОЛШЕБНИКИ!

Link to post
Share on other sites
support

Не за что, хорошо, что разобрались.

Link to post
Share on other sites
  • 3 months later...
В 29.09.2020 в 10:02, eugenem сказал:

Да, проблема именно в InnoDB. Нужно сменить тип таблиц. Запрос:
 


ALTER TABLE products ENGINE=MyISAM;
ALTER TABLE products_description ENGINE=MyISAM;

 

По умолчанию вся база переведена на InnoDB таблицы.

и код исправлен, со следующей версии такой проблемы в принципе не будет нигде и никогда.

В 20.05.2021 в 06:32, boamasteruga сказал:

Добрый день. Просто дабавить как запросы SQL, или их нужно обернуть  в код?

//Start VaM db-error изменение кодировки базы данных
   if ($$link){
   @mysqli_query($$link, "ALTER TABLE products ENGINE=MyISAM;");
   @mysqli_query($$link, "ALTER TABLE products_description ENGINE=MyISAM;");
   }

 

 $$link = mysqli_connect($server, $username, $password, $database);

if ($$link){
   @mysqli_query($$link, "SET SQL_MODE= ''");
   @mysqli_query($$link, "SET SQL_BIG_SELECTS=1");
   @mysqli_query($$link, "SET NAMES 'utf8' COLLATE 'utf8_general_ci'");
   @mysqli_query($$link, "ALTER TABLE products ENGINE=MyISAM;");
   @mysqli_query($$link, "ALTER TABLE products_description ENGINE=MyISAM;");
}

**************************************************

Вот так?

По умолчанию вся база переведена на InnoDB таблицы.

и код исправлен, со следующей версии такой проблемы в принципе не будет нигде и никогда.

Link to post
Share on other sites
×
×
  • Create New...