La recherche ne fonctionne pas bien [Réglé]
benflovideo Membre non connecté
-
Modérateur
- Voir le profil du membre benflovideo
- Inscrit le : 13/03/2010
- Groupes :
-
Equipe Modération
-
Equipe Communication
J'ai remarqué que sur mon installation de PHPBoost v5 la recherche ne fonctionnait pas très bien.
Je cherche un terme
J'ai l'erreur "Une erreur s'est produite lors de l'opération"
Je recherche exactement le même terne
J'ai le message "Aucun résultat n'a été trouvé" alors que le terme est très largement présent sur le site
Voici le contenu du fichier error.log
Caché:
2016-05-14 18:38:44
256
invalid query. (ERRNO 1214) The used table type doesn't support FULLTEXT indexes<hr />query: (SELECT 41 AS id_search,<br />f.id AS id_content,<br />f.question AS title,<br />( 2 * MATCH(f.question) AGAINST( 'Trainz') + MATCH(f.answer) AGAINST( 'Trainz')) / 3 * 3 AS relevance,<br />CONCAT('../faq/', id_category, '-', IF(id_category != 0, cat.rewrited_name, 'root'), '/#question', f.id) AS link<br />FROM phpboost_faq f<br />LEFT JOIN phpboost_faq_cats cat ON f.id_category = cat.id<br />WHERE ( MATCH(f.question) AGAINST( 'Trainz') OR MATCH(f.answer) AGAINST( 'Trainz') )<br />AND approved = 1<br />AND id_category IN (0, 3)<br />ORDER BY relevance DESC<br />LIMIT 100 OFFSET 0) UNION (SELECT 42 AS `id_search`,<br />MIN(msg.id) AS `id_content`,<br />t.title AS `title`,<br />MAX(( 2 * MATCH(t.title) AGAINST( 'Trainz') + MATCH(msg.contents) AGAINST( 'Trainz') ) / 3) * 4 AS `relevance`,<br />CONCAT('../forum/topic.php?id=', t.id, '#m', msg.id) AS `link`<br />FROM phpboost_forum_msg msg<br />JOIN phpboost_forum_topics t ON t.id = msg.idtopic<br />JOIN phpboost_forum_cats c ON c.id_parent != 0 AND c.id = t.idcat<br />WHERE ( MATCH(t.title) AGAINST( 'Trainz') OR MATCH(msg.contents) AGAINST( 'Trainz') ) AND msg.timestamp > '-1128756076'<br /> AND c.id IN (0,1,4,3,21,5,55,6,7,52,8,9,10,22,49,54,12,13,47)<br />GROUP BY t.id<br />ORDER BY relevance DESC<br />LIMIT 50) UNION (SELECT 43 AS id_search,<br />n.id AS id_content,<br />n.name AS title,<br />( 2 * MATCH(n.name) AGAINST( 'Trainz') + (MATCH(n.contents) AGAINST( 'Trainz') +<br />MATCH(n.short_contents) AGAINST( 'Trainz')) / 2 ) / 3 * 1 AS relevance,<br />CONCAT('../news/', id_category, '-', IF(id_category != 0, cat.rewrited_name, 'root'), '/', n.id, '-', n.rewrited_name) AS link<br />FROM phpboost_news n<br />LEFT JOIN phpboost_news_cats cat ON n.id_category = cat.id<br />WHERE ( MATCH(n.name) AGAINST( 'Trainz') OR MATCH(n.contents) AGAINST( 'Trainz') OR MATCH(n.short_contents) AGAINST( 'Trainz') )<br />AND id_category IN(0, 5, 6, 7, 9, 8, 1, 4)<br />AND (approbation_type = 1 OR (approbation_type = 2 AND start_date < '1463243924' AND (end_date > '1463243924' OR end_date = 0)))<br />ORDER BY relevance DESC<br />LIMIT 100 OFFSET 0) UNION (SELECT 45 AS id_search,<br />d.id AS id_content,<br />d.name AS title,<br />( 2 * MATCH(d.name) AGAINST( 'Trainz') + (MATCH(d.contents) AGAINST( 'Trainz') +<br />MATCH(d.short_contents) AGAINST( 'Trainz')) / 2 ) / 3 * 1 AS relevance,<br />CONCAT('../download/', id_category, '-', IF(id_category != 0, cat.rewrited_name, 'root'), '/', d.id, '-', d.rewrited_name) AS link<br />FROM phpboost_download d<br />LEFT JOIN phpboost_download_cats cat ON d.id_category = cat.id<br />WHERE ( MATCH(d.name) AGAINST( 'Trainz') OR MATCH(d.contents) AGAINST( 'Trainz') OR MATCH(d.short_contents) AGAINST( 'Trainz') )<br />AND id_category IN (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)<br />AND (approbation_type = 1 OR (approbation_type = 2 AND start_date < '1463243924' AND (end_date > '1463243924' OR end_date = 0)))<br />ORDER BY relevance DESC<br />LIMIT 100 OFFSET 0) UNION (SELECT 46 AS `id_search`,<br /> `id` AS `id_content`,<br /> `title` AS `title`,<br /> ((MATCH(title) AGAINST( 'Trainz') )* 5) AS `relevance`,<br /> CONCAT('../wiki/wiki.php?title=',encoded_title) AS `link`<br /> FROM phpboost_wiki_articles<br /> WHERE MATCH(title) AGAINST( 'Trainz'))
[0] /kernel/framework/io/db/driver/mysql/MySQLQuerier.class.php:48 - MySQLQuerier->execute(string, array)<br />[1] /kernel/framework/io/db/DBQuerier.class.php:50 - MySQLQuerier->select(string, array, int)<br />[2] /search/services/Search.class.php:325 - DBQuerier->select(string)<br />[3] /search/search.inc.php:53 - Search->insert_results(array)<br />[4] /search/search.inc.php:65 - execute_search(Search, array, array, array)<br />[5] /search/search.php:205 - get_search_results(string, array, array, array, array)<br />[URL] /search/search.php
256
invalid query. (ERRNO 1214) The used table type doesn't support FULLTEXT indexes<hr />query: (SELECT 41 AS id_search,<br />f.id AS id_content,<br />f.question AS title,<br />( 2 * MATCH(f.question) AGAINST( 'Trainz') + MATCH(f.answer) AGAINST( 'Trainz')) / 3 * 3 AS relevance,<br />CONCAT('../faq/', id_category, '-', IF(id_category != 0, cat.rewrited_name, 'root'), '/#question', f.id) AS link<br />FROM phpboost_faq f<br />LEFT JOIN phpboost_faq_cats cat ON f.id_category = cat.id<br />WHERE ( MATCH(f.question) AGAINST( 'Trainz') OR MATCH(f.answer) AGAINST( 'Trainz') )<br />AND approved = 1<br />AND id_category IN (0, 3)<br />ORDER BY relevance DESC<br />LIMIT 100 OFFSET 0) UNION (SELECT 42 AS `id_search`,<br />MIN(msg.id) AS `id_content`,<br />t.title AS `title`,<br />MAX(( 2 * MATCH(t.title) AGAINST( 'Trainz') + MATCH(msg.contents) AGAINST( 'Trainz') ) / 3) * 4 AS `relevance`,<br />CONCAT('../forum/topic.php?id=', t.id, '#m', msg.id) AS `link`<br />FROM phpboost_forum_msg msg<br />JOIN phpboost_forum_topics t ON t.id = msg.idtopic<br />JOIN phpboost_forum_cats c ON c.id_parent != 0 AND c.id = t.idcat<br />WHERE ( MATCH(t.title) AGAINST( 'Trainz') OR MATCH(msg.contents) AGAINST( 'Trainz') ) AND msg.timestamp > '-1128756076'<br /> AND c.id IN (0,1,4,3,21,5,55,6,7,52,8,9,10,22,49,54,12,13,47)<br />GROUP BY t.id<br />ORDER BY relevance DESC<br />LIMIT 50) UNION (SELECT 43 AS id_search,<br />n.id AS id_content,<br />n.name AS title,<br />( 2 * MATCH(n.name) AGAINST( 'Trainz') + (MATCH(n.contents) AGAINST( 'Trainz') +<br />MATCH(n.short_contents) AGAINST( 'Trainz')) / 2 ) / 3 * 1 AS relevance,<br />CONCAT('../news/', id_category, '-', IF(id_category != 0, cat.rewrited_name, 'root'), '/', n.id, '-', n.rewrited_name) AS link<br />FROM phpboost_news n<br />LEFT JOIN phpboost_news_cats cat ON n.id_category = cat.id<br />WHERE ( MATCH(n.name) AGAINST( 'Trainz') OR MATCH(n.contents) AGAINST( 'Trainz') OR MATCH(n.short_contents) AGAINST( 'Trainz') )<br />AND id_category IN(0, 5, 6, 7, 9, 8, 1, 4)<br />AND (approbation_type = 1 OR (approbation_type = 2 AND start_date < '1463243924' AND (end_date > '1463243924' OR end_date = 0)))<br />ORDER BY relevance DESC<br />LIMIT 100 OFFSET 0) UNION (SELECT 45 AS id_search,<br />d.id AS id_content,<br />d.name AS title,<br />( 2 * MATCH(d.name) AGAINST( 'Trainz') + (MATCH(d.contents) AGAINST( 'Trainz') +<br />MATCH(d.short_contents) AGAINST( 'Trainz')) / 2 ) / 3 * 1 AS relevance,<br />CONCAT('../download/', id_category, '-', IF(id_category != 0, cat.rewrited_name, 'root'), '/', d.id, '-', d.rewrited_name) AS link<br />FROM phpboost_download d<br />LEFT JOIN phpboost_download_cats cat ON d.id_category = cat.id<br />WHERE ( MATCH(d.name) AGAINST( 'Trainz') OR MATCH(d.contents) AGAINST( 'Trainz') OR MATCH(d.short_contents) AGAINST( 'Trainz') )<br />AND id_category IN (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)<br />AND (approbation_type = 1 OR (approbation_type = 2 AND start_date < '1463243924' AND (end_date > '1463243924' OR end_date = 0)))<br />ORDER BY relevance DESC<br />LIMIT 100 OFFSET 0) UNION (SELECT 46 AS `id_search`,<br /> `id` AS `id_content`,<br /> `title` AS `title`,<br /> ((MATCH(title) AGAINST( 'Trainz') )* 5) AS `relevance`,<br /> CONCAT('../wiki/wiki.php?title=',encoded_title) AS `link`<br /> FROM phpboost_wiki_articles<br /> WHERE MATCH(title) AGAINST( 'Trainz'))
[0] /kernel/framework/io/db/driver/mysql/MySQLQuerier.class.php:48 - MySQLQuerier->execute(string, array)<br />[1] /kernel/framework/io/db/DBQuerier.class.php:50 - MySQLQuerier->select(string, array, int)<br />[2] /search/services/Search.class.php:325 - DBQuerier->select(string)<br />[3] /search/search.inc.php:53 - Search->insert_results(array)<br />[4] /search/search.inc.php:65 - execute_search(Search, array, array, array)<br />[5] /search/search.php:205 - get_search_results(string, array, array, array, array)<br />[URL] /search/search.php
2 questions donc :
- Pourquoi l'erreur lors de la première recherche d'un terme donné ?
- Pourquoi aucun résultat n'est trouvé, alors que le terme est très largement présent sur le site (configuration du module vérifié) ?
D'avance merci

Benji
PaperToss Membre non connecté
Booster Bazooka
-
Booster Bazooka
- Voir le profil du membre PaperToss
- Inscrit le : 25/03/2016
Si c'est sur le site dont tu me parlais ce matin, chez moi ça fonctionne du premier coup, et la recherche 'Trainz' (si j'ai bien vu c'est ça ta recherche) me retourne 106 résultats.
Cordialement.
benflovideo Membre non connecté
-
Modérateur
- Voir le profil du membre benflovideo
- Inscrit le : 13/03/2010
- Groupes :
-
Equipe Modération
-
Equipe Communication
Si je suis connecté en administrateur, alors je retrouve les soucis cités dans mon premier message.
EDIT : D'ailleurs si je sélectionne l'affichage des résultats uniquement pour le module forum, les résultats sont affichés avec "Visiteur" en tant qu'auteur des messages pour tous les résultats, je pense que c'est un bug là non ? Normalement c'est le pseudo qui est affiché. D'ailleurs le lien sur le pseudo "Visiteur" amènebien au profil qui a posté le message.
Édité par benflovideo Le 14/05/2016 à 18h48
janus57 Membre non connecté
-
Booster Fusée
- Voir le profil du membre janus57
- Inscrit le : 07/12/2007
- Groupes :
-
Equipe Assistance
cela fait partie du site ou y a eu une modifs sur les DL ?
si oui est-ce que y a bien tous ce qui faut dans le module au niveau de la BDD ?
Cordialement, janus57
benflovideo Membre non connecté
-
Modérateur
- Voir le profil du membre benflovideo
- Inscrit le : 13/03/2010
- Groupes :
-
Equipe Modération
-
Equipe Communication
Niveau base de données tout semble correct, après ce qui est étrange c'est qu'en visiteur aucun soucis, une fois connecté ça pose problème.
janus57 Membre non connecté
-
Booster Fusée
- Voir le profil du membre janus57
- Inscrit le : 07/12/2007
- Groupes :
-
Equipe Assistance
le truc c'est que si tu fait une recherche en admin il me semble que le module ira chercher les même infos que les admins ont accès donc y compris les partie où y aurais des catégorie réservé aux admins par exemple.
Par contre l'erreur SQL indique clairement que le module fait une recherche "FULLTEXT" sur une table qui n'en a pas donc soit ça sent la modif SQL, soit un module il lui manque les bon indexes.
Cordialement, janus57
PaperToss Membre non connecté
Booster Bazooka
-
Booster Bazooka
- Voir le profil du membre PaperToss
- Inscrit le : 25/03/2016
benflovideo Membre non connecté
-
Modérateur
- Voir le profil du membre benflovideo
- Inscrit le : 13/03/2010
- Groupes :
-
Equipe Modération
-
Equipe Communication
Bien vu pour l'histoire des autorisations. Je pense qu'il s'agit du module downlad, que j'avais bloqué aux visiteurs suite à l'import de données depuis Joomla. Si je remet le module accessible aux visiteurs, les visiteurs ont également le problème que je cite.
Voici la structure de la table :

Et voici ce qui me manque (comparaison avec le site de démo) :

Donc le soucis vient bien de là. Pour infos j'ai recréé la table à la main à partir de celle de Joomla en changeant les noms / types de colonnes pour que ça correspondent à PHPBoost. Visiblement j'en ai oublié pour "INDEX".
Je corrige ça et je reposterai pour vous tenir au courant, mais normalement ça sera réglé ensuite.
Pas facile facile ces migrations de données

Benji
PS : Malgré l'optimisation de la table, j'ai toujours 600 MB de perte sur la table download d'ailleurs
Édité par benflovideo Le 14/05/2016 à 19h30
PaperToss Membre non connecté
Booster Bazooka
-
Booster Bazooka
- Voir le profil du membre PaperToss
- Inscrit le : 25/03/2016
Si ta version de MySQL est supérieure ou égale à la 5.6 ça ne pose pas de problème, mais avant la 5.6 InnoDB ne supporte pas la recherche Fulltext.
benflovideo Membre non connecté
-
Modérateur
- Voir le profil du membre benflovideo
- Inscrit le : 13/03/2010
- Groupes :
-
Equipe Modération
-
Equipe Communication

EDIT : D'ailleurs ça m'a débloqué l'option "Texte entier" ( = FULLTEXT) sur la structure des colonnes !
Benji
Édité par benflovideo Le 14/05/2016 à 19h37
janus57 Membre non connecté
-
Booster Fusée
- Voir le profil du membre janus57
- Inscrit le : 07/12/2007
- Groupes :
-
Equipe Assistance
et innodb ne supporte pas l'optimisation donc c'est pour ça que cela ne bouge pas même après optimisation.
Cordialement, janus57
benflovideo Membre non connecté
-
Modérateur
- Voir le profil du membre benflovideo
- Inscrit le : 13/03/2010
- Groupes :
-
Equipe Modération
-
Equipe Communication
Je confirme que le soucis venait bien du module download et des INDEX que je n'avais pas recréé. Tout fonctionne à présent

Pour l’optimisation, en effet, désormais je n'ai aucune perte.
Sujet réglé donc ! Merci pour votre aide et vos réponses rapides

Benji
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie