J'utilise actuellement solr pour stocker des informations de tweet publiques. J'ai un champ tel que le contenu, le sentiment, les mots-clés, tstamp, la langue, tweet_id pour capturer l'essence du tweet. J'évalue également Mongodb pour le même cas d'utilisation. J'essaie de comparer mongodb et solr ayant chacun un million de dossiers. Ce que j'ai observé est que la requête de groupe dans mongodb est 2,5 à 3 fois plus lente que la requête de facette de solr.Comment améliorer la performance des requêtes de groupe mongodb
La mongodb requête suivante
db.tweets.aggregate(
[
{
$group : {
_id : "$sentiment",
total : { $sum : 1 }
}
}
]
)
prend 481ms. J'ai index appliqué sur le champ de sentiment.
Cependant la même chose dans solr utilisant une requête facette prend 93ms.
Y a-t-il une autre configuration dans mongodb qui doit être définie de manière à améliorer les performances des requêtes de groupe dans mongodb?
Si un champ contient, disons, par ex. 80 valeurs distinctes alors dans ce cas l'approche ci-dessus n'est pas réalisable. Corrigez-moi si je me trompe. –
Droite. Ensuite, vous pouvez utiliser une agrégation comme celle ci-dessus pour la trouver, mais il n'y aura pas d'index utilisé. – wdberkeley