Elasticsearch design consideration

Hi all
Hope I post in the right section.
We have a small design problem, and I would like to have some advice.

  • We have a main index containing thousands of items.
  • We have thousands of users.
  • Each users can have a part or all the items of the main index.
  • Each users can add some informations (searchable) to this items.
    For the moment, we have created an index per user. but it multiply the number of shards, and result some memory failure.

All advice are good !
Thanks in advance for your help

So you have per user items, but then that user can also access other items belonging to other users?

Thanks for your answer.
Other user can't search the user index. Users share no datas between them

Oh right, then use routing with a single index.
You may need to move large users out into their own index though.

We just user just add one information, the price they sell the item.
So even large users have lot in common with small one.
But I don't understand how routing will help us,because we have to store the price

Routing just forces the data for a given user into the same shard, which makes search faster as you always go to that shard.