Bug #4722

Bugs on global search engine for Ticket

Added by yllen about 6 years ago. Updated about 6 years ago.

Status:ClosedStart date:12/13/2013
Priority:NormalDue date:
Assignee:moyo% Done:

100%

Category:Search Engine
Target version:0.84.4

Description

http://www.glpi-project.org/forum/viewtopic.php?id=34800

Problèmes :
- Dans le moteur de recherche d'un ticket

Critère AND NOT entité contient reims (1)
AND NOT entité contient agen (74)
(Test fait également avec est)
Requete générée
WHERE `glpi_tickets`.`is_deleted` = '0' AND ( `glpi_tickets`.`entities_id` IN ('68', '74', '1', '10', '334') ) AND (`glpi_entities`.`id` <> '74' OR `glpi_entities`.`id` IS NULL) AND (`glpi_entities`.`id` <> '1' OR `glpi_entities`.`id` IS NULL) ) GROUP BY `glpi_tickets`.`id`

=> Il m'affiche les tickets autres que 1 ou 74 ou alors de leur sous-entités

- dans la recherche globale
J'ai la requete de mon premier problème toujours affichée et je recherche le mot "tsmr" dans la recherche globale
Requete générée
WHERE `glpi_computers`.`is_deleted` = '0' AND `glpi_computers`.`is_template` = '0' AND ( `glpi_computers`.`entities_id` IN ('68', '74', '1', '10', '334') ) AND ( ( `glpi_computers`.`name` LIKE '%tsmr%' OR `glpi_entities`.`completename` LIKE '%tsmr%' OR `glpi_locations`.`completename` LIKE '%tsmr%' OR `glpi_infocoms`.`warranty_info` LIKE '%tsmr%' OR (((`glpi_users`.`realname` LIKE '%tsmr%' OR `glpi_users`.`firstname` LIKE '%tsmr%' OR `glpi_users`.`name` LIKE '%tsmr%' OR CONCAT LIKE '%tsmr%' ) ) ) ) ) GROUP BY `glpi_computers`.`id`

=> là il ne me trouve que les tickets sans aucun rapport avec le mot tsmr; d'ailleurs quand je fais page suivante pour la liste des tickets trouvés, le moteur de recherche indique
Statut Non résolu
ANT NOT éléments visualisés contient tsmr

Associated revisions

Revision 22296
Added by moyo about 6 years ago

Bugs on global search engine for Ticket see #4722

Revision 22297
Added by moyo about 6 years ago

[0.84] Bugs on global search engine for Ticket fixed #4722

Revision 22316
Added by moyo about 6 years ago

Bugs on global search engine for Ticket see #4722

Revision 22317
Added by moyo about 6 years ago

[0.84] Bugs on global search engine for Ticket see #4722

Revision 22404
Added by moyo about 6 years ago

Bugs on global search engine for Ticket see #4722

Revision 22405
Added by moyo about 6 years ago

[0.84] Bugs on global search engine for Ticket fixed #4722

History

#1 Updated by yllen about 6 years ago

Je viens de refaire d'autres tests, le problème est bien dans le moteur de recherche global au niveau des tickets ou il met un NOT LIKE au lieu d'un LIKE
(... AND (`glpi_tickets`.`name` NOT LIKE '%tsmr%' OR `glpi_tickets`.`name` IS NULL) AND (`glpi_entities`.`completename` NOT LIKE '%tsmr%'...)

#2 Updated by moyo about 6 years ago

  • Subject changed from Search engine to Bugs on ticket search engine

Avec un titre plus explicite déjà...

Premier point ; je ne comprend ce qu'il t'affiche ou ne t'affiche pas...

2eme problème : et par défaut il fait quoi ?

#3 Updated by moyo about 6 years ago

Le bookmark par défaut n'a pas été modifié tout simplement ? vu que c'est celui là qui est utilisé.

#4 Updated by yllen about 6 years ago

  • Subject changed from Bugs on ticket search engine to Bugs on global search engine for Ticket

#5 Updated by yllen about 6 years ago

Le problème que moi j'ai constaté est l'erreur dans le moteur de recherche global pour la section ticket.
Pour un item il recherche bien LIKE et pour un ticket il utilise NOT LIKE (j'ai mis la requete générée pour un computer dans la description du post et la requete pour un ticket dans ma réponse).

Concernant le marque-page, et suivant ta réponse, j'ai un marque-page défini par défaut (celui donné dans le forum) et il se charge bien pour les tickets lorsque j'ouvre le menu.

#6 Updated by yllen about 6 years ago

Je viens de refaire un test que je te détaille

entité CPAM contenant plein de sous-entités
Marque page défini comme indiqué dans l'entité CPAM
Je clique sur le menu Ticket, il me charge mon marque-page et m'affiche bien les tickets n'appartenant pas aux 2 entités de mon marque-page => correct

je met le mot tsmr dans le moteur de recherche global en haut à gauche
La, il ne me liste aucun objet (normal), sauf 44 tickets sur 57 qui ne contiennent pas le mot tsmr, alors qu'il devrait m'en lister 17.
Dans cette liste, lorsque je fais page suivante, il me met dans le moteur de recherche les critère non résolu et AND NOT Eléments visualisés contient Tsmr

Je pense que le problème vient uniquement du NOT LIKE utilisé pour les tickets au lieu du LIKE

#7 Updated by yllen about 6 years ago

Je viens de faire un second test avec un marque-page à AND et c'est le même problème.
Si j'ai bien compris, le moteur de recherche global ne tient pas compte des marque-page ou critères de recherche affichés, il recherche dans toute l'entité courante et ses enfants.

#8 Updated by moyo about 6 years ago

  • Assignee set to moyo

#9 Updated by moyo about 6 years ago

  • Status changed from New to Resolved
  • % Done changed from 0 to 100

Applied in changeset r22297.

#10 Updated by yllen about 6 years ago

  • Status changed from Resolved to Assigned
  • % Done changed from 100 to 50

Maintenant le recherche ne se fait plus du tout sur les tickets.

Je précise que le problème ne se situe qu'en 0.84

#11 Updated by moyo about 6 years ago

Ya moyen d'être plus précis sur les retours...
Chez moi aucun problème ca prend la recherche par défaut et ajoute le critère elements visualisé contient le critère de recherche.

#12 Updated by yllen about 6 years ago

Bon je viens de reaire des tets dans tous les sens.
2 bookmarks par défaut
- computer => Nom contient SBEI
- ticket => Satut clos AND NOT entité contient fille

Je lance la recherche global sur le critère "006"

Pour les ordinateurs, il me prend bien la vue par défaut à laquelle il ajoute mon critère 006

WHERE `glpi_computers`.`is_deleted` = '0' AND `glpi_computers`.`is_template` = '0' AND ( `glpi_computers`.`entities_id` IN ('1', '333', '339', '342', '341', '334', '344', '345', '340', '336') ) AND ( `glpi_computers`.`name` LIKE '%SBEI%' AND ( `glpi_computers`.`name` LIKE '%006%' OR `glpi_entities`.`completename` LIKE '%006%' OR `glpi_locations`.`completename` LIKE '%006%' OR `glpi_domains`.`name` LIKE '%006%' OR `glpi_computertypes`.`name` LIKE '%006%' OR `glpi_computers`.`serial` LIKE '%006%' OR `glpi_computers`.`contact_num` LIKE '%006%' OR `glpi_computers`.`otherserial` LIKE '%006%' OR `glpi_infocoms`.`immo_number` LIKE '%006%' ) ) GROUP BY `glpi_computers`.`id`

Pour les tickets

WHERE `glpi_tickets`.`is_deleted` = '0' AND ( `glpi_tickets`.`entities_id` IN ('1', '333', '339', '342', '341', '334', '344', '345', '340', '336') ) AND ( `glpi_tickets`.`status` IN ('6') AND (`glpi_entities`.`completename` NOT LIKE '%FILLE%' OR `glpi_entities`.`completename` IS NULL) AND ( (`glpi_tickets`.`id` = 6) OR `glpi_tickets`.`name` LIKE '%006%' OR `glpi_entities`.`completename` LIKE '%006%' OR `glpi_tickets`.`status` IN ('006') OR `glpi_tickets`.`date` LIKE '%006%' OR `glpi_tickets`.`solution` LIKE '%006%' OR `glpi_tickets`.`due_date` LIKE '%006%' OR (((`glpi_users_c5e682856a6d6fe48b5aed8f8b238708`.`firstname` LIKE '%006%' OR `glpi_users_c5e682856a6d6fe48b5aed8f8b238708`.`realname` LIKE '%006%' OR `glpi_users_c5e682856a6d6fe48b5aed8f8b238708`.`name` LIKE '%006%' OR CONCAT LIKE '%006%' ) ) OR `glpi_tickets_users_74690f2626744a37ace4c70dd87cea83`.`alternative_email` LIKE '%006%' ) OR `glpi_groups_3ed6ccfdb1bfb7a948f5790d89c9a17a`.`name` LIKE '%006%' OR `glpi_tickets`.`content` LIKE '%006%' OR `glpi_tickets`.`date_mod` LIKE '%006%' ) ) GROUP BY `glpi_tickets`.`id`

Donc je pense que le problème vient de mon critère 006 qui est interprété en id=6 et statut in ('006') et vu que mon critère de bookmark est clos (donc 6).
Ce qu'il fait qu'il me sort des ticket sans aucun mot 006 dans les colonnes affichées.

Il y a aussi un truc qui m'a introduit en erreur dimanche, c'est que les éléments avec un bookmark défini par défaut, dans la liste du moteur de recherche global, s'ils ne correspondent pas au critère, je n'ai pas nom item et au dessous pas d'éléments trouvés, donc en faisant un test rapide, j'ai cru que la recherche n'était pas faite.

#13 Updated by moyo about 6 years ago

Donc au final on considère que c'est bon ?

#14 Updated by yllen about 6 years ago

Moi ce qui me gène c'est l'interprétation statut in ('006').
Pour un utilisateur il ne comprendra pas pourquoi il a des ticket listés qui ne comprennent pas la chaine de texte recherchée.
Nous on sait que 6 = clos, mais l'utilisateur lambda le sait surement pas.
Y a-t-il possibilité de neutralisé cela ? ne pas requeter sur la colonne statut si elle est affichée ?

#15 Updated by moyo about 6 years ago

je viens d'ajouter un controle en plus pour ce champ. ca filtre les 006 mais pas 6 par contre

#16 Updated by moyo about 6 years ago

Est-ce que c'est suffisant comme ca ?

#17 Updated by yllen about 6 years ago

  • % Done changed from 50 to 90

Au niveau de la requete, oui c'est nickel.
J'ai toujours mon problème d'affichage du nom de l'objet en cas de vue par défaut. Je t'ai envoyé une copie d'écran, ce sera plus clair que des explications.

#18 Updated by moyo about 6 years ago

  • Status changed from Assigned to Resolved
  • % Done changed from 90 to 100

Applied in changeset r22405.

#19 Updated by moyo about 6 years ago

  • Status changed from Resolved to Closed

Also available in: Atom PDF