I'm kind of new to elasticsearch, and would really appreciate the help,
in my company we have a metadata repository,
the repository is structured this way:
we have groups of entities of different types, lets say
entitiesGroupA: [Aentity1, Aentity2, Aentity3...],
entitiesGroupB: [Bentity1, Bentity2, Bentity3...]
about 15 groups, and in total about 1500 entities
each entity name is unique, and there are no duplicates
there is basic data for each entity (flags, text description, and more)
for each entity there are aproximatly 100~ fields on average.
when i say field I dont mean the basic data, I mean a logical field in the entity that each field contains things like boolean flags, text description, and so on...
there are also groups for the fields (about 5)
moreover the repository has versions, every month a new version
the question is, what is the best way to model this structure to fit best in elasticsearch
the usage of the data in elasticsearch will be to search entities by name and by group,
retrieve all the fields of an entity, search fields by name and by group, search fields in an entity by name and by group,
i thought of the following model:
/entities_[Version]/[entityGroup]/[entityName]
will have data on the entity (not its fields)
e.g: version 1 of the repository, entity1 from groupA
/entities_1/groupA/entity1
the fields of each entity will be as follows
/[entityName]_[Version]/[fieldGroup]/[fieldName]
e.g: version 1 of entity1, field1 from field group A
/entity1_1/groupA/field1
Is this a good way to model the repository?, I feel that in this way I create allot of indexes, maybe i should model it to have more types? what are the advantages for more indexes instead of more types?
as you can see, because Im new to elasticsearch and I couldn't find allot of studying material I feel a bit clueless O:
thanks for any help :D