Un index par user ?

39 views
Skip to first unread message

Emmanuel Bouton

unread,
Nov 1, 2012, 3:30:50 AM11/1/12
to elasticsearch-fr
Bonjour la liste,

Mettons que je développe une gestion de bibliothèque en ligne. Je souhaiterai que mes utilisateurs puissent non seulement rechercher dans la base commune de livres, mais également dans leur propre bibliothèque ... Comment feriez vous ça ?
Est ce que je peux créer un index par utilisateur pour référencer les livres de leur bibliothèque ? Si j'ai plusieurs centaines de milliers d'utilisateurs ça ne risque pas de devenir trop lourd pour ES ?

Merci, a+
Manu

David Pilato

unread,
Nov 1, 2012, 3:38:54 AM11/1/12
to elastics...@googlegroups.com
Sur un seul nœud, ça va poser problème.
Disons que tu fasses un index avec un shard. Tu auras donc 100 000 shards (100 000 instances de Lucene).
Chaque instance Lucene ouvre plusieurs fichiers sur ton disque.

Tu vas donc rapidement être confronté au problème de "too many open files".

Pourquoi ne pas gérer ça côté client ?
Tu mets dans ton objet book un champ username et lorsque tu cherches tu mets systématiquement un filtre pour ne chercher que dans les livres de ton utilisateur ou dans les livres de tout le monde.

Ça t'aide ?

--
David ;-)
Twitter : @dadoonet / @elasticsearchfr / @scrutmydocs

--
---
Vous pouvez également poster et consulter les réponses en anglais sur le groupe Elasticsearch https://groups.google.com/group/elasticsearch
 
Si vous avez également posté votre question sur la mailing list elasti...@googlegroups.com, merci d'indiquer ici le lien vers cette discussion pour faciliter le suivi.
 
Twitter : @ElasticsearchFR https://twitter.com/#!/ElasticsearchFR
Site web (English) : http://www.elasticsearch.org/

Emmanuel Bouton

unread,
Nov 1, 2012, 4:01:10 AM11/1/12
to elastics...@googlegroups.com
Merci pour ta réponse ultra rapide :)
En fait j'ai buggé je voulais dire un type par user ...

En fait le principe c'est que chaque user va chercher dans la base commune de livres pour en référencer un dans sa bibliothèque. Si le livre n'est pas trouvé, il le créé et le nouveau livre devient disponible pour les autres.
Donc pour un livre présent dans mon type book, je peux avoir 0 à n user qui le référencent.
Il faudrait que je stocke un tableau de user id dans mon type book ?

a+
Manu

Jérôme Mainaud

unread,
Nov 1, 2012, 4:06:18 PM11/1/12
to elastics...@googlegroups.com

Bonjour,

Si tes mappings sont les mêmes, je te conseille de suivre la proposition de David. Ne t'embête pas à créer autant de type, donc de mappings que d'utilisateur et privilégie un champ qui marque la propriété. Chaque requête sera filtré par ce champs. Les filtres sont particulièrement bien adaptés à ce type d'usage.

Jérôme Mainaud

Emmanuel Bouton

unread,
Nov 1, 2012, 5:43:51 PM11/1/12
to elastics...@googlegroups.com
Ok merci beaucoup à tous les deux pour ces conseils !

a+
Manu
Reply all
Reply to author
Forward
0 new messages