Bonjour à tous,
Je suis en train d'évaluer ES 0.90.0 et Solr 4.3 sur un volume de données assez faible : 5 millions de documents, 10 fields par doc de petite taille. Le tout sur 2 shards, 0 replicas, avec 1.2Gb de mémoire allouée à la JVM.
La config de Solr et d'ES est celle de base, pas de customization du mapping.
L'index est optimisé.
Je ne retourne que 25 résultats
Je lance une requête que je pense simple :
clientId:valeur_numérique1 AND docTypeId:valeur_numérique2
Elle retourne les documents par type associés à un client.
valeur_numerique1 et
valeur_numérique2 sont pris au hasard parmis la liste de ceux présents dans l'index. Il y a toujours un résultat associé à ces requêtes.
Résultats:
- Solr 100 users simultannés : 500 req/s
- ES 100 users simultannés : 200 req/s
Le nombre de résultat retourné par Solr et ES est identique. La différence de perf me semble trop importante pour être honnête. Ce qui est interessant de noter c'est que la requete seule "
clientId:valeur_numérique1" monte à 800 req/s et la requete seule "
docTypeId:valeur_numérique2" monte à 150 req/s. Le nombre de résultats de la seconde est 10x plus important que la première.
Je suis également passé par une filter query plutot que par une query standard et j'obtiens le même résultat. Un vmstat pendant les queries ne montre quasiment aucune activité des IO et aucune du swap.
Je suis à cours d'idée pour tenter de trouver une solution et j'en viens à penser que Solr est plus performant qu'ES (en tous cas dans ce cas de figure).
Avez vous des idées?
Nicolas