Recherches avec catégories: comment accélérer?

cancel
Showing results for 
Search instead for 
Did you mean: 
hbf
Active Member

Recherches avec catégories: comment accélérer?

Bonsoir,

Est-ce quelqu'un parmi vous a une idée comment on peut améliorer la performance d'une recherche de catégories avec quelques clause "AND" et "OR"?

Par example

PATH:"/cm:generalclassifiable//cm:AFRICA/member" AND PATH:"/cm:generalclassifiable//cm:Another_x0020_category/member"

En ce moment, des recherches pareilles (avec 4 "AND" ou "OR" au maximum) prennent, dans un system d'environs 10'000 "nodes", une à trois secondes comme admin, le résultat embrassant une douxaine de "nodes". Comme j'utilise le résultat pour une réponse d'AJAX, ça devrait être beaucoup plus vite.

Peut-être un truc de configuration ehcache ou Lucene aiderait?

Merci à tous,
Gaspard
6 Replies
michaelh
Active Member

Re: Recherches avec catégories: comment accélérer?

Bonjour,

Avant de se poser la question du comment, je me pose toujours celle du "où". Est-ce que l'index lucene est stocké en local ou sur un lecteur distant ?
Ca évitera de partir sur une fausse piste alors que l'architecture ne serait pas bonne (l'index doit être forcément en local pour des raisons de performance).
hbf
Active Member

Re: Recherches avec catégories: comment accélérer?

Avant de se poser la question du comment, je me pose toujours celle du "où". Est-ce que l'index lucene est stocké en local ou sur un lecteur distant ?
L'index Lucene est definitivement stocké en local. C'est une connection directe à travers de l'Alfresco Content Management Java API, c'est-à-dire que mon application se trouve dans le même process que le "repository".
rguinot
Customer

Re: Recherches avec catégories: comment accélérer?

A titre d'infos, pouvez vous nous fournir des éléments d'architecture de déploiement, les paramètres JVM que vous utilisez, et également le nombre de file handles que vous avez donné au user qui "lance" Alfresco ?
hbf
Active Member

Re: Recherches avec catégories: comment accélérer?

A titre d'infos, pouvez vous nous fournir des éléments d'architecture de déploiement, les paramètres JVM que vous utilisez, et également le nombre de file handles que vous avez donné au user qui "lance" Alfresco ?

Premièrement, merci beaucoup à vous, rguinot et MichaelH, pour m'aider içi, j'apprécie beaucoup.

Quant à votre question, mon "file" catalina.sh dit

CATALINA_OPTS="$CATALINA_OPTS -server"
CATALINA_OPTS="$CATALINA_OPTS -Xmx2560M"
CATALINA_OPTS="$CATALINA_OPTS -XX:PermSize=128m -XX:MaxPermSize=256m"

et l'ordinateur, un système Linux, a 4 GB de RAM et deux processeurs "AMD Athlon™ 64 X2 Dual Core Processor 5600+".

Un "sysctl -a" me done:

fs.file-nr = 1280   0   366813
fs.file-max = 366813

…ce qui me semble okay, non?

Gaspard
rivarola
Active Member

Re: Recherches avec catégories: comment accélérer?

Bonjour Gaspard,

Est-ce que tu as les mêmes temps de réponse en mettant le chemin complet de tes catégories au lieu d'utiliser // dans le PATH ?
Est-ce que tu obtiens les mêmes temps de réponse en lançant directement la requête depuis le NodeBrowser ?
hbf
Active Member

Re: Recherches avec catégories: comment accélérer?

Pardon pour le delai, j'avais beaucoup d'autre choses à faire, mais me voilà de retour.

Est-ce que tu as les mêmes temps de réponse en mettant le chemin complet de tes catégories au lieu d'utiliser // dans le PATH ?
Oui, le résultat est le même (après la première foi que je lancé la recherche.

Est-ce que tu obtiens les mêmes temps de réponse en lançant directement la requête depuis le NodeBrowser ?

Même chose. (Je ne crois pas que ce soit un problème de permission car je lance la recherche comme administrateur 'admin'.)

Après de la recherche sur l'internet et dans l'implémentation de "PATH" en Alfresco, j'ai essayé de lancé, au lieu de

PATH:"/cm:generalclassifiable//cm:Switzerland/member"

une recherche de la forme

PARENT:"workspace://SpacesStore/d0ac2fe8-a33d-11dc-bf1b-335d0754ba85"

ce qui est beaucoup plus vite!

Cette recherche utilise le fait que tous les nodes catégorisés sous Switzerland (par example) sont (dans le store ADM, voir ADMLuceneIndexerImpl.java) enregistrés comme "enfants" de la node et ainsi une rechere PARENT:"<noderef de Switzerland>" les trouve.

Deux choses: La recherche évidemment trouve aussi des subcatégories (s'il y en a). Pas beau, il fait s'en débarrasser (et je ne sais pas encore comment). Deuxièment, la recherche ne trouve pas les nodes catégorisés avec des sous-catégories.

J'espère que ces informations aident à d'autres!

Merci à tous,
Gaspard

P.S. Un conseil: Il faut faire attention avec les parenthèses: La recherche

PARENT:"workspace://SpacesStore/d0ac2fe8-a33d-11dc-bf1b-335d0754ba85" AND NOT PARENT:"workspace://SpacesStore/9dc174ed-a747-11dc-a370-835e5c383006"

marche, mais

PARENT:"workspace://SpacesStore/d0ac2fe8-a33d-11dc-bf1b-335d0754ba85" AND (NOT PARENT:"workspace://SpacesStore/9dc174ed-a747-11dc-a370-835e5c383006")

dans calmement 0 résultat.