Лучший способ справиться с этим - сохранить все записи (перекрестные пользователи) в одном индексе и пометить их отдельными идентификаторами пользователей.
{ "objectID": 1, ....., "_tags": ["user_21"] }
{ "objectID": 2, ....., "_tags": ["user_21"] }
{ "objectID": 3, ....., "_tags": ["user_42"] }
Затем на поиске время, используйте Обеспеченные API ключи ограничить поиск определенного идентификатора пользователя. Это безопасное решение, которое вы можете использовать в своем JavaScript-коде, чтобы ваши пользователи только просматривали записи, к которым у них есть доступ.
В вашем внутреннем интерфейсе:
// if the current user is ID=42
public_key = Algolia.generate_secured_api_key('<SearchOnlyAPIKeyKeptPrivate>', {filters: 'user_42'})
В вашем интерфейсе:
var client = algoliasearch("APPID", '<PublicApiKeyGeneratedForUser42>');
index.search('.....');
Вы можете прочитать больше о ключах API (особенно Обеспеченные API ключей) здесь: https://www.algolia.com/doc/guides/security/api-keys