Some use cases require vectors to be segmented by their customers, either physically or logically. The table below describes three techniques to accomplish this and the pros and cons of considering each:

TechniquesProsCons
Separate Indexes
Each customer would have a separate index
• Customer data is truly separated physically by indexes• You cannot query across customers if you wish
• Cost and maintenance of several indexes
Namespaces
You can isolate data within a single index using namespaces
• You can only query one namespace at a time, which would keep customer data separate logically
• Cheaper than #1 potentially by making more efficient use of index storage
• You cannot query across namespaces
• Customer data is only separated logically
Metadata Filtering
All data is kept in a single index and logically separated by filtering at query time
• Most versatile if you wish to query across customers
• As with namespaces cheaper than #1 potentially
• Customer data is separated only by filtering at query time