MurmurationsNetwork / MurmurationsProtocol

Murmurations is a distributed data sharing protocol
https://murmurations.network
GNU General Public License v3.0
10 stars 1 forks source link

Indexed Fields Customization #67

Open geoffturk opened 3 months ago

geoffturk commented 3 months ago

The 11 fields that are currently indexed in an index are defined directly in the code: https://github.com/MurmurationsNetwork/MurmurationsServices/blob/main/services/index/internal/model/profile.go#L23-L35 https://github.com/MurmurationsNetwork/MurmurationsServices/blob/main/services/index/pkg/index/envvar.go#L32-L44

Aside from last_updated and status which are created and used by the index itself, and linked_schemas and profile_url which are required by the protocol, the remaining 7 fields (name, primary_url, tags, geolocation, locality, region and country) are fields defined in specific schemas like the Organizations schema.

To make the index more customizable, an index operator should be able to specify which fields to index. These 7 could be default options defined in a configuration file, but an index operator could add others and/or remove one or more of these 7. Only the 4 fields required by the index or protocol need to be fixed.

Enabling this functionality means index operators could specify which fields they choose to index, and multiple index operators could index different fields for a complex schema that has a large dataset.