This means you’ve already made a bad decision . PS. I’ll try to be quick here, hence no pleasantries.
Folder (and all other) structures should follow what you value. The higher the value, the more prominent it should be. Does anyone, except programmers, care whether you have a repository in your code or not?
A PageRepository is not valuable, however a Page is. A UserDAO is not valuable, but a User is.
This suggests your main folder structure should contain user and page… Then… what’s important about a user…? Obviously, all the ID-s, names, information. And also, they must be stored “somewhere”, hence you should have an interface user.Repo. Something needs to implement it -> user/userrepo-solr…
Let’s now assume that you’ve also need a page/pagerepo-solr. To reduce duplication you can put the solr implementations into package db/solr. e.g. solr.Users, solr.Pages …
Of course depending on what you value and what you are building. user and page might not be that important. In a issue tracker, you could have tracker.User, and not a separate user package.
This approach will make sure that you have things organized by what is important – and not by form.